如何检查内部数组中是否存在某个值,并在以下场景中从同一个内部数组中获取其他值?

时间:2015-07-30 06:05:54

标签: php arrays multidimensional-array associative-array key-value

我遵循标题为$requests的关联数组:

注意:以下是语句print_r($requests);

的输出
Array
(
    [0] => Array
        (
            [request_id] => 33
            [is_seen] => 1
            [message] => 
            [friend_user_id] => 901
        )

    [1] => Array
        (
            [request_id] => 23
            [is_seen] => 1
            [message] => 
            [friend_user_id] => 970
        )

)

现在我想要实现的是我将从变量中的$friend_user_id变量中获取用户的价值。现在,我将解析上面的数组,以检查内部数组中的任何一个是否与标题为$friend_user_id的键中的['friend_user_id']具有相同的值。如果找到匹配,那么应该获取来自同一内部数组的键['request_id']的值,如果没有找到匹配则它应该不返回任何内容。

例如,变量$friend_user_id包含值 901 然后它应该返回 33 (相应的request_id)

我应该如何以高效,优化和可靠的方式实现这一目标?

提前致谢。

1 个答案:

答案 0 :(得分:1)

一个简单的foreachin_array将成为

的诀窍
$friend_user_id = 901;
foreach($arr as $key => $value){
    if(in_array($friend_user_id,$value)){
        $request_id = $value['request_id'];
    }
}
echo $request_id;

Fiddle