PHP的检查,如果内部阵列阵列包含在特定索引

问题描述:

空值假设我们有两个二维数组:PHP的检查,如果内部阵列阵列包含在特定索引

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

如何检查是thisArrays阵列都在指数2个空值,如果他们这样做都有空索引2中的元素,如何从所有数组中删除这些元素?

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

+1

请告诉我们一些代码。你已经尝试过什么,你卡在哪里? – chocochaos

使用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 
     ) 

) 

$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;