PHP:在数组之间添加缺少的键

我有以下数组键值:


$arrData = array

(

    array(

        'a' => 'test',

        'c' => 1,

        'd' => 2,

        'e' => 'B'

    ),

    array(

        'c' => 1,

        'd' => 2,

        'e' => 'B'

    ),

    array(

        'b' => 'test2',

        'c' => 1,

        'd' => 2,

        'e' => 'B'

    )

);

所以在这里我需要将数组合并为单个,并将缺失的键与单值数组相结合。有人可以帮助在单个数组中获得以下输出吗?


$arrData = array

(

    array(

        'a' => 'test',

        'b' => 'test2',

        'c' => 1,

        'd' => 2,

        'e' => 'B'

    )

);

提前致谢!


一只名叫tom的猫
浏览 144回答 3
3回答

不负相思意

只需合并它们,然后对键进行排序:$arrData = array_merge(...$arrData);ksort($arrData);而不是...你可以使用:$arrData = call_user_func_array('array_merge', $arrData);如果你真的希望结果是多维的,那么:$arrData = [$arraData];//or$arrData = array($arrData);

摇曳的蔷薇

您可以使用array_reduce(或一个简单的 foreach 循环)将每个后续数组值与第一个值合并:$out = array_reduce($arrData, function ($c, $v) { return array_merge($c, $v); }, array());print_r($out);$out = array();foreach ($arrData as $arr) {    $out = array_merge($out, $arr);}print_r($out);输出(对于两个示例):Array (  [a] => test  [c] => 1  [d] => 2  [e] => B  [b] => test2 )如果要按字母顺序保留键,可以使用ksort:ksort($out);print_r($out);Array (  [a] => test  [b] => test2   [c] => 1  [d] => 2  [e] => B)
打开App,查看更多内容
随时随地看视频慕课网APP