首页 > 解决方案 > PHP删除多维数组中两个数组的索引位置为空

问题描述

如果我有一个这样的数组:

    数组:2 [▼
      “姓氏” => 数组:3 [▼
        0 => "射线"
        1 => 空
        2 => “梗犬”
      ]
      “爱好” => 数组:3 [▼
        0 => "钢琴"
        1 => 空
        2 => “篮球”
      ]
    ]

我想要的结果:

    雷|钢琴
    梗犬|篮球

如何删除多维数组的两个索引 1,同时确保仍然保留只有一个内部数组和空索引的多维数组?

所以如果我有一个这样的数组:

    数组:2 [▼
      “姓氏” => 数组:3 [▼
        0 => "射线"
        1 => 空
        2 => “梗犬”
      ]
      “爱好” => 数组:3 [▼
        0 => "钢琴"
        1 => “滑冰”
        2 => “篮球”
      ]
    ]

它将返回:

    雷|钢琴
    |滑冰
    梗犬|篮球

谢谢!

编辑:
这就是我所拥有的,但我相信它会删除任何包含 null 的内容:

        $h2 = '';
        foreach ($tempArray as $key => $value){
            for ($i = 0; $i < count($value); $i++){
                if(is_null($value[$i])){
                    $i++;
                }
                $h2 .= implode($delimiter, array_column($tempArray, $i))."\n";
            }
            break;
        }

标签: phparrayslaravelmultidimensional-arrayoutput

解决方案


使用array_combine函数。命令是:

array array_combine ( array $keys , array $values )

$keys 数组的值成为 $values 中值的键。例如:

cholmes@felix:~/project$ php -a
Interactive mode enabled

php > $m = array(0=>"thing1", 1=>null, 2=>"thing3");
php > $n = array(0=>"apples", 1=>"dull", 2=>"klog");
php > $l = array_combine($m, $n);
php > var_dump($l);
array(3) {
  ["thing1"]=>
  string(6) "apples"
  [""]=>
  string(4) "dull"
  ["thing3"]=>
  string(4) "klog"
}

这里需要注意两点:

  • 使用 null 作为键会导致空字符串""
  • 该命令假定您使用的是编号数组。我还没有探讨过使用关联输入或缺少某些索引时会发生什么。

推荐阅读