我正在尝试在数组中搜索给定值。找到此值后,我需要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;
}
答案 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;
}
}
}
}