Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
concat数组值,如果包含重复项-php_Php_Mysql_Arrays - Fatal编程技术网

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)