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

时间:2015-09-25 16:27:48

标签: php arrays object unset

我在php中有一个数组对象。

我想取消设置所有内部对象都包含空值的索引。

示例:

$ data,如

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


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

示例: 所以对于所有数组对象,address3索引为null,所以我想让它为所有对象取消设置。 address1对所有人都不为空,所以我需要它。只为所有人设置了未设置的address3索引。 步骤:

  1. 想要检查所有数据的索引为空。
  2. 取消设置所有这些索引。
  3. 所以结果应该是:

    {{1}}

3 个答案:

答案 0 :(得分:0)

只需使用array_filterarray_map一样使用

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

答案 1 :(得分:0)

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

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

var_dump($arr);

答案 2 :(得分:0)

我认为 array_filter 可以做你想做的事情

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

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