【问题标题】:How can I filter empty values from an object in PHP [duplicate]如何从 PHP 中的对象中过滤空值 [重复]
【发布时间】:2019-05-21 11:30:42
【问题描述】:

我正在尝试过滤掉对象中的空条目。

例如这样的对象:

stdClass Object
(
    [maten0] => stdClass Object
        (
            [XXS] => 
            [XS] => 
            [S] => 10
            [M] => 10
            [L] => 
            [XL] => 
            [XXL] => 
        )

)

期望的输出是:

stdClass Object
(
    [maten0] => stdClass Object
        (
            [S] => 10
            [M] => 10
        )

)

我用 json 创建对象。像这样:

$kuubobject = json_decode($artikel['aantalkuub']);

我发现了如何使用数组执行此操作,但以下内容不适用于对象:

$filteredobject = array_filter($kuubobject, 'strleng');

这给了我错误:

array_filter() expects parameter 1 to be array, object given

如何对对象执行此操作?

在标记重复的问题之后,我尝试了以下操作:

$object = (object) array_filter((array) $kuubobject);
echo '<pre>';
print_r($object);
echo '</pre>';

但我得到与上面相同的输出。

【问题讨论】:

  • 为什么不用$kuubobject = json_decode($artikel['aantalkuub'], true); 然后你就可以使用array_filter

标签: php arrays json object


【解决方案1】:

您可以使用array_filter

$filteredobject  = array_filter((array)$object->maten0);

【讨论】:

  • 谢谢,但maten0 随时可能不同,因此像这样添加它不适用于我的所有对象。例如,另一个页面可以有maten1
  • 如果不同,您可以foreach 并使用$object-&gt;{$key}
猜你喜欢
  • 2020-04-07
  • 2017-09-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-01-26
  • 2016-09-06
  • 1970-01-01
  • 2021-09-07
相关资源
最近更新 更多