Array_Search 在多维数组中
Array_Search in multidimensional array
Array
(
[0] => stdClass Object
(
[comment_ID] => 31
[comment_post_ID] => 16
[comment_karma] => 0
[comment_approved] => 1
[comment_parent] => 0
)
[1] => stdClass Object
(
[comment_ID] => 32
[comment_post_ID] => 16
[comment_karma] => 0
[comment_approved] => 1
[comment_parent] => 31
)
[2] => stdClass Object
(
[comment_ID] => 33
[comment_post_ID] => 16
[comment_karma] => 0
[comment_approved] => 1
[comment_parent] => 30
)
)
<?
foreach ($array as $comments)
{
$key = array_search ("30", $comments);
echo $key;
}
?>
我需要检索 comment_parent 30 所在的数组键,它位于 [2] 数组中。我试过 array_search 但我收到了这个错误:
Warning: array_search() expects parameter 2 to be array, object given
in
谢谢。
也许你应该按如下方式转换对象
$key = array_search ("30", (array)$comments);
这将修复您的错误,但不会完成您需要的工作。
最好查看@Prashant M Bhavsar
的答案
$commentKey = null;
foreach ($array as $key=>$obj)
{
if(isset($obj->comment_parent) && $obj->comment_parent == 30){
$commentKey = $key;
break;
}
}
对于更复杂的结构或语句,您可以使用 array_map 函数。
试试这个..你的数组有对象所以你必须按对象获取值,然后使用下面的逻辑来获取键..
foreach ($array as $key=>$obj){
if($obj->comment_parent == 30){
break;
}
}
echo "Required Key is ==>".$key;
Array
(
[0] => stdClass Object
(
[comment_ID] => 31
[comment_post_ID] => 16
[comment_karma] => 0
[comment_approved] => 1
[comment_parent] => 0
)
[1] => stdClass Object
(
[comment_ID] => 32
[comment_post_ID] => 16
[comment_karma] => 0
[comment_approved] => 1
[comment_parent] => 31
)
[2] => stdClass Object
(
[comment_ID] => 33
[comment_post_ID] => 16
[comment_karma] => 0
[comment_approved] => 1
[comment_parent] => 30
)
)
<?
foreach ($array as $comments)
{
$key = array_search ("30", $comments);
echo $key;
}
?>
我需要检索 comment_parent 30 所在的数组键,它位于 [2] 数组中。我试过 array_search 但我收到了这个错误:
Warning: array_search() expects parameter 2 to be array, object given in
谢谢。
也许你应该按如下方式转换对象
$key = array_search ("30", (array)$comments);
这将修复您的错误,但不会完成您需要的工作。 最好查看@Prashant M Bhavsar
的答案$commentKey = null;
foreach ($array as $key=>$obj)
{
if(isset($obj->comment_parent) && $obj->comment_parent == 30){
$commentKey = $key;
break;
}
}
对于更复杂的结构或语句,您可以使用 array_map 函数。
试试这个..你的数组有对象所以你必须按对象获取值,然后使用下面的逻辑来获取键..
foreach ($array as $key=>$obj){
if($obj->comment_parent == 30){
break;
}
}
echo "Required Key is ==>".$key;