为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

PHP
一只名叫tom的猫 2021-06-16 17:30:51
我有以下数组键值:$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'    ));提前致谢!
查看完整描述

3 回答

?
不负相思意

TA贡献1777条经验 获得超10个赞

只需合并它们,然后对键进行排序:


$arrData = array_merge(...$arrData);

ksort($arrData);

而不是...你可以使用:


$arrData = call_user_func_array('array_merge', $arrData);

如果你真的希望结果是多维的,那么:


$arrData = [$arraData];

//or

$arrData = array($arrData);


查看完整回答
反对 回复 2021-06-25
?
摇曳的蔷薇

TA贡献1793条经验 获得超6个赞

您可以使用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

)


查看完整回答
反对 回复 2021-06-25
  • 3 回答
  • 0 关注
  • 143 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信