【问题标题】:How to check presence of a certain value in inner array and fetch some other value from the same inner array in following scenario?如何检查内部数组中是否存在某个值并在以下场景中从同一内部数组中获取其他值?
【发布时间】:2015-10-21 08:46:41
【问题描述】:

我关注了标题为 $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)

我应该如何以高效、最佳和可靠的方式实现这一目标?

提前致谢。

【问题讨论】:

  • 也发布您的尝试,以确定您想要达到的最佳水平

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


【解决方案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

【讨论】:

  • 首先非常感谢您的帮助。只是我的一个小要求。我得到的结果是 Array ( [request_id] => Array ( [0] => 33 ) ) 但我只希望以以下方式得到结果 $request_id = 33;而已。您能否对您的答案进行必要的更改并更新它,以便我可以接受您的答案?再次感谢。
猜你喜欢
  • 1970-01-01
  • 2013-12-09
  • 2022-01-08
  • 2013-04-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-25
相关资源
最近更新 更多