2017-10-13 77 views
-3

空值假設我們有兩個二維數組:PHP的檢查,如果內部陣列陣列包含在特定索引

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

如何檢查是thisArrays陣列都在指數2個空值,如果他們這樣做都有空索引2中的元素,如何從所有數組中刪除這些元素?

我似乎無法弄清楚這一點,我似乎無法谷歌任何PHP功能,這將幫助我。

+1

請告訴我們一些代碼。你已經嘗試過什麼,你卡在哪裏? – chocochaos

回答

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 
     ) 

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