我有一个像这样的多维php数组:
其中列“b”有2个可能的值(x,y),列“v”有2个可能的值(t,f)
Array
(
[0] => Array
(
[a] => 6
[b] => x
[c] => t
)
[1] => Array
(
[a] => 4
[b] => x
[c] => t
)
[2] => Array
(
[a] => 6
[b] => y
[c] => f
)
我想重新排列列,以便按照以下方式按值构建它们。
我的问题是,有没有一种聪明的方法来使用一些本机的PHP函数来做到这一点,而不会遍历所有内容
Array(
[value of b=x] => Array(
[value of c=t] => Array( all ids in the array)
[value of c=f] => Array( all ids in the array)
)
[value of b=y] => Array(
[value of c=t] => Array( all ids in the array)
[value of c=f] => Array( all ids in the array)
)
)
答案 0 :(得分:2)
我假设all ids in the array
表示“数组中所有a
列值”。在这种情况下,这就是你想要的:
$result = array();
array_walk($array, function($val, $key) use (&$result) {
$result[$val['b']][$val['c']][] = $val['a'];
});
print_r($result);
如果ids
表示外部数组索引,只需在上面的代码中将$val['a']
更改为$key
。