【问题标题】:array merge and display with empty data数组合并并显示空数据
【发布时间】:2015-10-17 17:50:45
【问题描述】:

我有两个数组,如下所示

$array1 = array("color" => "red","size" => "32");
$array2 = array("color" => "blue","width" => "40");

我的php代码如下

    <?php
        $array1 = array("color" => "red","size" => "32");
        $array2 = array("color" => "blue","width" => "40");
        $result = array_merge_recursive($array1, $array2);
        echo json_encode($result);
?>

这段代码的输出是

{
color: [
"red",
"blue"
],
size: "32",
width: "40"
}

我想得到类似的输出

{
color: [
"red",
"blue"
],
size: [
"32",
""
],
width: [
"",
"40"
]
}

我怎样才能得到这个?请尽快帮帮我。

提前致谢。

【问题讨论】:

    标签: php multidimensional-array merge


    【解决方案1】:

    将 array_merge 与默认值数组一起使用

    $array1 = array("color" => "red","size" => "32");
    $array2 = array("color" => "blue","width" => "40");
    $arrayInit = array("color" => "","width" => "","size"=>"");
    $array1 = array_merge($arrayInit,$array1);
    $array2 = array_merge($arrayInit,$array2);
    $result = array_merge_recursive($array1, $array2);
    echo json_encode($result);
    

    【讨论】:

      【解决方案2】:
      $keys = array_keys(array_merge($array1, $array2)); // get all the keys
      foreach ($keys as $key) {
          // set each key in the result array to the value from the input array or a default ''
          $result[$key][] = isset($array1[$key]) ? $array1[$key] : '';
          $result[$key][] = isset($array2[$key]) ? $array2[$key] : '';
      }
      echo json_encode($result);
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-11-01
        • 2015-12-21
        • 1970-01-01
        • 1970-01-01
        • 2021-07-10
        • 1970-01-01
        • 1970-01-01
        • 2017-03-31
        相关资源
        最近更新 更多