2015-09-25 403 views
-2

我在php中有一個數組對象。檢查數組對象中特定索引的所有值是否爲空?

我想取消設置所有內部對象包含空值的所有索引。

例如:

$數據,如

Array (
[0] => Array (
      [address] => 123 
      [address1] => asddff 
      [address3] => 
      ) 
[1] => Array (
      [address] => 123 
      [address1] => 
      [address3] => 
      ) 
[2] => Array (
      [address] => 123 
      [address1] => asddff 
      [address3] => 
      ) 
[3] => Array (
      [address] => 123 
      [address1] => asddff 
      [address3] => 
     ) 
) 

例如: 所以,所以我希望把它未設置爲所有對象地址3指數則爲空數組對象。 address1對所有人都不爲空,所以我需要它。只爲所有人取消設置address3索引。 步驟:

  1. 想檢查所有數據的索引是否爲空。
  2. 取消設置所有這些索引。

所以結果應該是這樣的:

Array (
[0] => Array (
      [address] => 123 
      [address1] => asddff 
      ) 
[1] => Array (
      [address] => 123 
      [address1] => 
     ) 


[2] => Array (
      [address] => 123 
      [address1] => asddff 
      ) 
[3] => Array (
      [address] => 123 
      [address1] => asddff 
     ) 
) 
+0

你到目前爲止所嘗試過的內容是爲你嘗試 –

+0

array_filter。 –

回答

0

只需隨着array_map爲您取消設置使用array_filter等作爲

print_r(array_map('array_filter',$your_array)); 
+1

這將擺脫「地址2」。我相信OP希望那個人留下來。 – CodeGodie

+0

不希望_想檢查所有數據的索引是否爲空。 取消所有這些索引。@ @CodeGodie –

+1

在這種情況下,你明白了。 – CodeGodie

0

迭代,並通過引用傳遞。

foreach ($arr as &$a) { 
    if (empty($a['address3'])) { 
     unset($a['address3']); 
    } 
} 

var_dump($arr); 
+0

我們不能簡單地使用'empty($ a ['address3']) '而不是'!isset($ a ['address3'])|| $ a ['address3'] ===「」' –

+0

不知道那個。這也可以使用。 – CodeGodie

0

我覺得array_filter會做你想做的事

$data_filtered = array_filter($data, function ($obj) { 
    return !is_null($obj['address2']); 
}); 
var_dump($data); 
var_dump($data_filtered); 

好,存儲新的變量過濾的值是什麼只是一個例子,你做任何你正在嘗試做的。

相關問題