Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/272.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 如何检查stdclass对象数组中是否有可用的数组值_Php_Arrays_Object - Fatal编程技术网

Php 如何检查stdclass对象数组中是否有可用的数组值

Php 如何检查stdclass对象数组中是否有可用的数组值,php,arrays,object,Php,Arrays,Object,我试图检查这个std对象数组中是否有id的名称,我不想在数组中循环,因为它不会显示正确的信息。我的代码如下: 我尝试使用in_数组方法,但它找不到id键和值 多谢各位 D~~您需要循环数组来检查数组中对象的属性。编写一个返回所需值的函数,如(伪代码): 在Anzeo回答的帮助下,我对其进行了一点升级,以便与其他属性一起使用,并用于条件语句,请看一看: function my_in_array($needle, $haystack = array(), $property){ foreac

我试图检查这个std对象数组中是否有id的名称,我不想在数组中循环,因为它不会显示正确的信息。我的代码如下:

我尝试使用in_数组方法,但它找不到id键和值

多谢各位
D~~

您需要循环数组来检查数组中对象的属性。编写一个返回所需值的函数,如(伪代码):


在Anzeo回答的帮助下,我对其进行了一点升级,以便与其他属性一起使用,并用于条件语句,请看一看:

function my_in_array($needle, $haystack = array(), $property){
    foreach ($haystack as $object) {
        if($object->$property == $needle){
            return true;
        } else {
            return false;
        }
    }
}
foreach($foo as $bar) {
    if(!my_in_array($bar, $arrWithObjects, 'id')) {
        //do something
    }
}
希望这对其他人有用

编辑 我还发现了一个很好的技巧,可以将对象的属性转换为数组,这在某些情况下可能会有所帮助

foreach($arrWithObjects as $obj) {
    $objProps = get_object_vars($obj);
    if(in_array('My Name', $objProps)) {
        //do something
    }
}

循环有什么问题?为什么循环不能为您提供正确的数据?您将不得不以这样或那样的方式在数组中循环以按id值查找条目。也许你可以更好地解释一下“…因为它不会显示正确的信息”。你不想在数组中循环是什么意思?据我所知,这将是你唯一的解决方案。你能重新组织数组以使用id作为索引吗?对不起,伙计们,我在一个单独的函数中使用了循环,该函数将所有id存储在一个数组中,它工作得很好。。我的错。。无论如何,谢谢。谢谢,我编程PHP已经有一段时间了:)
function my_in_array($needle, $haystack = array(), $property){
    foreach ($haystack as $object) {
        if($object->$property == $needle){
            return true;
        } else {
            return false;
        }
    }
}
foreach($foo as $bar) {
    if(!my_in_array($bar, $arrWithObjects, 'id')) {
        //do something
    }
}
foreach($arrWithObjects as $obj) {
    $objProps = get_object_vars($obj);
    if(in_array('My Name', $objProps)) {
        //do something
    }
}