1
我有一个数组,其中包含来自数据库的一组信息,但其中一些数据是重复的,只有数组最深处的值为1 。例如:PHP从多维数组中找到值,然后将它们放在一个数组中
[0] => Array(['id'] => 1 , ['name'] => "First Array" , ['more'] => "stuff")
[1] => Array(['id'] => 2 , ['name'] => "Second Array" , ['more'] => "stuff1")
[2] => Array(['id'] => 2 , ['name'] => "Second Array" , ['more'] => "stuff2")
[3] => Array(['id'] => 3 , ['name'] => "Third Array" , ['more'] => "stuff3")
[4] => Array(['id'] => 3 , ['name'] => "Third Array" , ['more'] => "stuff4")
我想要做的就是用相同的[“身份证”]字段中的任何阵列到阵列的阵列,而不是[“更多”]。例如:
[0] => Array(['id'] => 1 , ['name'] => "First Array" , ['more'] => "stuff")
[1] => Array(['id'] => 2 , ['name'] => "Second Array" , ['more'] => Array([0] => "stuff1" , [1] => "stuff2"))
[2] => Array(['id'] => 2 , ['name'] => "Third Array" , ['more'] => Array([0] => "stuff3" , [1] => "stuff4"))
我试图做这几种方法,但我可以得到最接近的是这将会把所有的[“更多”]值到1门阵列这样的功能:
[0] => Array(['id'] => 1 , ['name'] => "First Array" , ['more'] => "stuff")
[1] => Array(['id'] => 2 , ['name'] => "Second Array" , ['more'] => Array([0] => "stuff1" , [1] => "stuff2" , [2] => "stuff3" , [3] => "stuff4"))
这就是从这样的功能:
<?php
private function compress_duplicates($a = array()) {
$diff_key = array_diff_key($a , array_unique($a));
$first_key = array_shift(array_keys($diffkey));
$array["id"] = $diff_key[$first_key]["id"];
$array["name"] = $diff_key[$first_key]["name"];
foreach($diff_key as $term) {
$array["more"][] = $term["more"];
}
return $array;
}
?>
基本上我问的:我怎样才能找到一个多维数组复制,然后将每个这些重复的到自己的阵列?