检查数组对象中特定索引的所有值是否为Null


Check all value of specific index in array object is Null or not?

php中有一个数组对象。

我想取消所有包含空值的索引。

的例子:

$data like

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] => 
          )
)

的例子:address3 index对所有数组对象都是空的所以我想让它对所有对象都不设。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
          )
)

在取消设置时迭代并通过引用传递。

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

我认为array_filter会做你想做的事情

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

好吧,在新变量中存储过滤值只是一个例子,你可以做任何你想做的。

简单地使用array_filterarray_map,如

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