0

我正在尝试在数组中搜索给定值。一旦找到这个值,我就需要该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;
}
4

3 回答 3

0

尝试这个:

function findIn($find, $inArray){
  foreach($inArray as $a){
    foreach($a as $i => $v){
      if($v === $find){
        return $i;
      }
    }
  }
}
于 2013-10-03T22:13:51.470 回答
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
    }
}
于 2013-10-03T22:08:37.500 回答
0

array_search只能用于一维数组。在您的情况下,您不是在顶级数组中寻找字符串,而是关联子数组之一的值。

foreach ($array as $key => $subarray) {
    if ($subarray['UserId'] == 5632414) {
        echo $key;
    }
}
于 2013-10-03T22:02:56.430 回答