Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在PHP中过滤对象中的空值_Php_Arrays_Json_Object - Fatal编程技术网

如何在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);