如何在php中将具有相同键的数组合并为一个

时间:2017-07-31 12:27:08

标签: php arrays foreach

我想将具有相同值的数组合并为一个。

这是我拥有的数组

Array
(
    [0] => Array
        (
            [id] => 6
            [name] => role
        )
    [1] => Array
        (
            [id] => 5
            [name] => role
        )
    [2] => Array
        (
            [id] => 3
            [name] => category
        )
    [3] => Array
        (
            [id] => 4
            [name] => category
        )   
)

这就是我想要实现的目标。

Array
(
     [0] => 5,
     [1] => 6
)
Array
(
     [0] => 4,
     [1] => 3
)  

这是我的代码

$result = array();
foreach ($items as $key => $value) {
   $name  = $value['name']; 
   $result[$name] = array($value['id']);
}

foreach($result as $key => $val){
  print_r($val);
}  

我得到的是

Array (
    [0] => 5 
) 
Array (
    [0] => 4 
)

这里有人可以帮我解决这个问题吗?真有帮助 赞赏。 感谢。

2 个答案:

答案 0 :(得分:5)

$result = array();
foreach ($items as $key => $value) {
   $name = $value['name']; 
   if (!isset($result[$name])) {
       $result[$name] = [];
   }
   $result[$name][] = $value['id'];  
}
print_r($result);

答案 1 :(得分:4)

试试这个

$result=[];
foreach ($items as $value) {
    $result[$value['name']][] = $value['id'];
}
print_r($result);