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

Posted

技术标签:

【中文标题】检查数组对象中特定索引的所有值是不是为 Null?【英文标题】:Check all value of specific index in array object is Null or not?检查数组对象中特定索引的所有值是否为 Null? 【发布时间】:2015-12-23 13:15:27 【问题描述】:

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

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

    想要检查所有数据的哪些索引为空。 取消设置所有这些索引。

所以结果应该是这样的:

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


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

【问题讨论】:

你到目前为止所尝试的发布你的尝试 array_filter 给你。 【参考方案1】:

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

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


var_dump($arr);

【讨论】:

我们不能简单地使用empty($a['address3']) 而不是!isset($a['address3']) || $a['address3'] === "" 不知道那个。也可以使用。【参考方案2】:

我认为 array_filter 会做你想做的事

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

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

【讨论】:

【参考方案3】:

只需将array_filterarray_map 一起使用

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

【讨论】:

这将摆脱“address2”。我相信 OP 希望留下那个。 Nope 想要检查所有数据的哪些索引为空。取消设置所有这些索引。 @CodeGodie 在这种情况下,你明白了。 它也会去掉 '[1]['address1']'。如果所有 [0],[1],[2] 的索引地址 1 为空,则只需删除即可。就像索引地址 3 对所有人都为空一样。所以它应该为所有人取消设置。不是 'address1' 索引,因为它不是每个索引都为空。 那你需要查this答案

以上是关于检查数组对象中特定索引的所有值是不是为 Null?的主要内容,如果未能解决你的问题,请参考以下文章

检查多维数组的任何子数组中的特定键是不是存在特定值

JQ:查找具有特定属性值的对象的数组索引

如何对对象中特定键的所有值求和?

如何对包含null元素的对象数组进行排序?

检查对象中的值是不是为空或空javascript

如何快速检查对象数组中是不是存在属性值