concat数组值,如果包含重复项-php
这是我的阵列。如果存在重复,我需要计算数组值concat数组值,如果包含重复项-php,php,mysql,arrays,Php,Mysql,Arrays,这是我的阵列。如果存在重复,我需要计算数组值 Array ( [0] => Array ( [id] => 3 [location_id] => 2 [location_name] => 1st Floor [type] => 1 ) [1] => Array
Array
(
[0] => Array
(
[id] => 3
[location_id] => 2
[location_name] => 1st Floor
[type] => 1
)
[1] => Array
(
[id] => 6
[location_id] => 2
[location_name] => 1st Floor
[type] => 1
)
[2] => Array
(
[id] => 7
[location_id] => 1
[location_name] => Ground Floor
[type] => 1
)
)
下面是我的代码,它不涉及唯一值
$conct= array();
foreach ($myArray as $array)
{
foreach ($array as $key => $value)
{
if ( ! isset($merged[$key]))
{
$conct[$key] = $value;
}
else
{
$conct[$key] .= ",".$value;
}
}
}
这是给我的
Array
(
[0] => Array
(
[id] => 3,6,7
[location_id] => 2,2,1
[location_name] => 1st Floor,1st Floor,Ground Floor
[type] => 1,1,1
)
)
我需要基于唯一的location\u id
和location\u name
计算值。
我的结果数组应该是
Array
(
[0] => Array
(
[id] => 3,6
[location_id] => 2,2
[location_name] => 1st Floor,1st Floor
[type] => 1,1
)
[1] => Array
(
[id] => 7
[location_id] => 1
[location_name] => Ground Floor
[type] => 1
)
)
如何做到这一点?试试这个
<?php
$new_values = array();
$values = array(
array('id'=> 1, 'location_id' => 2, 'location_name' => '1st Floor','type'=>1),
array('id'=> 6, 'location_id' => 2, 'location_name' => '1st Floor','type'=>1),
array('id'=> 7, 'location_id' => 1, 'location_name' => 'Gound Floor','type'=>1),
);
foreach($values as $value) {
if(isset($new_values[$value['location_id']])) {
$temp = $new_values[$value['location_id']];
$temp['id'] .= ',' . $value['id'];
$temp['location_id'] .= ',' . $value['location_id'];
$temp['location_name'] .= ',' . $value['location_name'];
$temp['type'] .= ',' . $value['type'];
$new_values[$value['location_id']] = $temp;
} else {
$new_values[$value['location_id']] = $value;
}
}
$new_values = array_values($new_values);
print_r($new_values);
?>
输出:Array([0]=>Array([id]=>1,6[location\u id]=>2,2[location\u name]=>1楼,1楼[type]=>1,1][1]=>Array([id]=>7[location\u id]=>1[location\u name]=>Gound Floor[type]=>1))
试试这个
<?php
$new_values = array();
$values = array(
array('id'=> 1, 'location_id' => 2, 'location_name' => '1st Floor','type'=>1),
array('id'=> 6, 'location_id' => 2, 'location_name' => '1st Floor','type'=>1),
array('id'=> 7, 'location_id' => 1, 'location_name' => 'Gound Floor','type'=>1),
);
foreach($values as $value) {
if(isset($new_values[$value['location_id']])) {
$temp = $new_values[$value['location_id']];
$temp['id'] .= ',' . $value['id'];
$temp['location_id'] .= ',' . $value['location_id'];
$temp['location_name'] .= ',' . $value['location_name'];
$temp['type'] .= ',' . $value['type'];
$new_values[$value['location_id']] = $temp;
} else {
$new_values[$value['location_id']] = $value;
}
}
$new_values = array_values($new_values);
print_r($new_values);
?>
输出:数组([0]=>数组([id]=>1,6[location\u id]=>2,2[location\u name]=>1层,1层[type]=>1][1]=>数组([id]=>7[location\u id]=>1[location\u name]=>Gound Floor[type]=>1))
$input=Array(数组('id'=>3,'location\u id'=>2,'location\u name'=>1层,'type'=>1),
数组('id'=>6,'location\u id'=>2,'location\u name'=>1st Floor','type'=>1),
数组('id'=>7,'location\u id'=>1,'location\u name'=>'Ground Floor','type'=>1)
);
$conct=array();
foreach($k=>$\u输入形式的输入){
foreach($\输入为$key=>$value){
如果(isset($conct[$key])){
如果(选中重复($duplicate,$input[$k])){
$conct[$key]。=“,”$value;
}否则{
$new[$key]=$value;
}
}
其他的
{
$conct[$key]=$value;
如果($key=='location\u id'| |$key=='location\u name')
$duplicate[$key]=$value;
}
}
}
函数检查\u duplicate($duplicate=array(),$input=array()){
foreach($复制为$dupe){
如果($dupe===$input['location\U id']| |$dupe====$input['location\U name']))
返回true;
其他的
返回false;
}
}
回声“;印刷费($conct);
回声“;印刷(新);
$input=array(数组('id'=>3,'location\u id'=>2,'location\u name'=>'1st Floor','type'=>1),
数组('id'=>6,'location\u id'=>2,'location\u name'=>1st Floor','type'=>1),
数组('id'=>7,'location\u id'=>1,'location\u name'=>'Ground Floor','type'=>1)
);
$conct=array();
foreach($k=>$\u输入形式的输入){
foreach($\输入为$key=>$value){
如果(isset($conct[$key])){
如果(选中重复($duplicate,$input[$k])){
$conct[$key]。=“,”$value;
}否则{
$new[$key]=$value;
}
}
其他的
{
$conct[$key]=$value;
如果($key=='location\u id'| |$key=='location\u name')
$duplicate[$key]=$value;
}
}
}
函数检查\u duplicate($duplicate=array(),$input=array()){
foreach($复制为$dupe){
如果($dupe===$input['location\U id']| |$dupe====$input['location\U name']))
返回true;
其他的
返回false;
}
}
回声“;印刷费($conct);
回声“;印刷(新);
应答数组([id]=>3,6[location\u id]=>2,2[location\u name]=>1,1)数组([id]=>7[location\u id]=>1[location\u name]=>Ground Floor[type]=>1)应答数组([id]=>3,6[location\u id]=>2,2[location\u name]=>1楼,1]数组([id]=>7[location\u id]=>1[location\u name]=>Ground Floor[type]=>1)