Php检查数组中的数组是否包含特定索引处的空值

时间:2017-10-13 09:28:24

标签: php arrays

假设我们有两个2D数组:

thisArray = array(
   array('A', 'B', '');
   array('A', 'B', '');
)

如何检查thisArrays数组在索引2处是否都有空值,如果它们在索引2处都有空元素,那么如何从所有数组中删除这些元素?

我似乎无法弄清楚这一点,我似乎无法谷歌任何可以帮助我的PHP功能。

2 个答案:

答案 0 :(得分:0)

使用array_column()array_filter,您可以实现此目的,

array_column - 向您提供一个方向的数组

array_filter - 过滤,空值,

所以最后如果数组为空,那么所有都是空的

<?php

$array = array(
   array('A', 'B', ''),
   array('A', 'B', '')
);

if(empty( array_filter(array_column($array,2))) ){
    echo 'All are empty at index 2'.PHP_EOL;

    // since all are empty
    // use reference and unset
    foreach($array as &$item) {
         unset($item[2]);
    }

    // unset reference 
    unset($item); 
}

print_r($array);
?>

测试结果:

$ php test.php
All are empty at index 2
Array
(
    [0] => Array
        (
            [0] => A
            [1] => B
        )

    [1] => Array
        (
            [0] => A
            [1] => B
        )

)

答案 1 :(得分:0)

$thisArray = array(
   array('A', 'B', '');
   array('A', 'B', '');
)

试试这个

foreach($thisArray as $array){

if(isset($array[2]) && $array[2]==null){ //if array at index 2 is empty

unset($array[2])); //remove array 
}

}
return $thisArray;