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