我有一个像这样的多维 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)
)
)
我假设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
即可。