使用PHP在Array中搜索特定值

时间:2013-10-03 21:58:53

标签: php arrays json search

我正在尝试在数组中搜索给定值。找到此值后,我需要array key值来访问数组中的其他信息。这是我需要搜索的数组:

array(3) {
  [0]=>
  array(20) {
    ["FirstName"]=>
    string(7) "Person1"
    ["LastName"]=>
    string(7) "Person1"
    ["UserId"]=>
    int(5632414)
  }
  [1]=>
  array(20) {
     ["FirstName"]=>
    string(7) "Person2"
    ["LastName"]=>
    string(7) "Person2"
    ["UserId"]=>
    int(5632414)
  }
  [2]=>
  array(20) {
     ["FirstName"]=>
    string(7) "Person3"
    ["LastName"]=>
    string(7) "Person3"
    ["UserId"]=>
    int(5632414)
  }
}

我在数组中搜索特定的UserId。我已经尝试了几个代码,但似乎都没有。当我运行脚本时,我得到的只是一个空白屏幕。这是我最新的代码:

$array = json_decode($output);

for ($x = 0; $x <= count($array); $x++) {
    $key = array_search('5632414', $array);
    echo $key;
}

3 个答案:

答案 0 :(得分:0)

array_search只能用于一维数组。在你的情况下,你不是在顶层数组中寻找一个字符串,它是一个关联子数组的值。

foreach ($array as $key => $subarray) {
    if ($subarray['UserId'] == 5632414) {
        echo $key;
    }
}

答案 1 :(得分:0)

根据您发布的var_dump输出,看起来您可能会执行以下操作:

$array = json_decode($output);

for ($x = 0; $x < count($array); $x++) {
    if ( $array[ x ][ "UserId" ] === $the_value_I_am_looking_for )
    {
        //Then do something
    }
}

答案 2 :(得分:0)

试试这个:

function findIn($find, $inArray){
  foreach($inArray as $a){
    foreach($a as $i => $v){
      if($v === $find){
        return $i;
      }
    }
  }
}