php - 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;
}
解决方案
使用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 作为键会导致空字符串
""
- 该命令假定您使用的是编号数组。我还没有探讨过使用关联输入或缺少某些索引时会发生什么。