如何从PHP中的对象过滤空值

时间:2019-05-21 11:30:42

标签: php arrays json object

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

例如这样的对象:

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>';

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

2 个答案:

答案 0 :(得分:0)

您可以使用<network-security-config> <base-config cleartextTrafficPermitted="true"> <trust-anchors> <certificates src="system" /> <certificates src="user" /> </trust-anchors> </base-config>

array_filter

答案 1 :(得分:0)

根据您输入的对象结构

//Login 
$(document).on("click","#btnLogin",function(){
    var result = isValidFormLogin();
    if(result=="true"){
        $("#formLogin").submit();
    }
    else{
        $("#MsgLogin").html(result);
    }

});

function isValidFormLogin(){
    if($.trim($("#username").val())==""){
        return "Enter Username";
    }
    if($.trim($("#password").val())==""){
        return "Enter Password";
    }
    return "true";
}

输出:-{https://3v4l.org/B0VRF

您可以使用$filteredobject = array_filter((array)$kuubobject->maten0); 中的第二个参数true简化操作

json_decode()

输出:-https://3v4l.org/Pqgbf

注意:- 要在最终数组中创建相同的索引,请执行

$array = json_decode(json_encode($array),true);

$filteredobject = array_filter($array['maten0']);

输出:-{https://3v4l.org/j3iWO