2013-10-11 512 views
0

我需要一個函數來刪除一個數組,其中包括一個PHP中的多維數組中的空元素假設以下是我的數組在這裏我需要找出並刪除數組[1]和數組[2],因爲元素爲空沒有值。如何從多維數組中刪除一個空數組php

$array[] = array(
    'name'=>'name1', 
    'email'=>'email1', 
    'empty'=>'NOT_EMPTY' 
); 
$array[] = array(
    'name'=>'name2', 
    'email'=>'email2', 
    'empty'=>'' 
); 
$array[] = array(
    'name'=>'', 
    'email'=>'', 
    'empty'=>'' 
); 

當我這樣做

$array = array_map('array_filter', $array); 

print_r($array); 

我得到的結果

Array 
(
    [0] => Array 
     (
      [name] => name1 
      [email] => email1 
      [empty]=> NOT_EMPTY 
     ) 

    [1] => Array 
     (
      [name] => name2 
      [email] => email2 
     ) 

    [2] => Array 
     (
     ) 

) 

但預期的結果

它自己的那等同於f僅 unset價值觀
Array 
(

    [0] => Array 
     (
      [name] => name2 
      [email] => email2 
      [empty]=> NOT_EMPTY 
     ) 

) 
+0

我們還需要看到你'array_filter()'函數代碼來理解你如何得到結果。 –

+0

這是一個內置功能 – nikki

回答

1

array_filter()而不是整個陣列。你將需要循環,如果任何數組已經缺少的元素,然後取消設置陣列,如:

foreach($array as $key => $a){ 
    if(count(array_filter($a)) < count($a)){ 
    unset($array[$key]); 
    } 
} 

有可能是一個更好的辦法,我只是簡單