如何在PHP中过滤对象中的空值
我试图过滤掉对象中的空条目 例如,像这样的对象:如何在PHP中过滤对象中的空值,php,arrays,json,object,Php,Arrays,Json,Object,我试图过滤掉对象中的空条目 例如,像这样的对象: stdClass Object ( [maten0] => stdClass Object ( [XXS] => [XS] => [S] => 10 [M] => 10 [L] => [XL] => [XXL
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>';
$object=(object)数组\过滤器((数组)$kuubobject);
回声';
打印(对象);
回声';
但是我得到了与上面相同的输出。您可以使用
array\u filter
为什么不
$kuubobject=json_decode($artikel['aantalkuub'],true)
然后您就可以使用array\u filter
谢谢,但是maten0
随时都可能不同,所以这样添加它对我的所有对象都不起作用。例如,另一个页面可以有maten1
。如果它不同,那么您可以foreach
并使用$object->{$key}
$filteredobject = array_filter((array)$object->maten0);