合并数组数组而不会丢失值

Ant*_*ter 3 php arrays sorting multidimensional-array

Array
(
    [0] => Array
        (
            [color] => Brown
        )

    [1] => Array
        (
            [color] => Green
        )

    [2] => Array
        (
            [width] => 34
        )

)
Run Code Online (Sandbox Code Playgroud)

我需要这样做

[color] => Array
    (
        [0] => green
        [1] => brown
    )

[width] => Array
    (
        [0] => 34
    )
Run Code Online (Sandbox Code Playgroud)

)

我正在尝试所有的阵列工具.但我不能让它像我想要的那样.

Com*_*eek 7

这与array_column()相当简单(需要PHP> = 5.5.0):

$result = array[
  'color' => array_column($arr, 'color'),
  'width' => array_column($arr, 'width')
];
Run Code Online (Sandbox Code Playgroud)

现场小提琴:https://eval.in/81746


如果您事先不知道密钥,则使用array_walk_recursive()是另一种解决方案:

$result = [];
array_walk_recursive($arr, function($value, $key) use (&$result) {
  if (!isset($result[$key])) {
    $result[$key] = [];
  }
  $result[$key][] = $value;
});
Run Code Online (Sandbox Code Playgroud)

现场小提琴:https://eval.in/81745