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;