我有這樣的代碼:array_search($key, $array)
。 $ key爲任意數量從1到10 $陣列看起來像這樣:使用PHP查找多維數組中元素的位置
id name
1 foo
2 bar
3 lol
4 asdf
我只是想找到的名稱在數組中的位置。所以如果我有「富」,我會得到0,如果我有「大聲笑」,我會有2。
我有這樣的代碼:array_search($key, $array)
。 $ key爲任意數量從1到10 $陣列看起來像這樣:使用PHP查找多維數組中元素的位置
id name
1 foo
2 bar
3 lol
4 asdf
我只是想找到的名稱在數組中的位置。所以如果我有「富」,我會得到0,如果我有「大聲笑」,我會有2。
<?php
$array = array("1"=>"foo","2"=>"bar","3"=>"lol","4"=>"asdf");
$value="foo";
$key = array_search($value, $array);
$pos =array_search($key, array_keys($array));
echo "element pos is: ". ($pos);
?>
$id = 2
foreach ($array as $value) {
if ($value['id'] == $id) {
echo $value['name'];
break;
}
}
$i = array_search($foo, array_values($array));
犯錯,我想我誤以爲你在你輸入數組是什麼意思。
這可能是你想要什麼:
function find_position($key, array $array, $col)
{
$i = 0;
foreach ($array as $item) /* or as $i => $item, not sure what you want */
{
if ($item[$col] == $key) return $i;
++$i;
}
return NULL;
}
$i = find_position('foo', $array, 'name');
關於在上面的代碼中的註釋......很明顯,如果你使用它,那麼你不需要$i = 0
或$++i
。
您需要使用array_values將您的數組重新索引爲零索引。
$index = array_search($foo, array_values($array));
這將返回:
echo array_search('foo', array_values($array)); // 0
echo array_search('bar', array_values($array)); // 1
echo array_search('lol', array_values($array)); // 2
echo array_search('asdf', array_values($array)); // 3
你想通過鍵搜索和返回鍵? – MitMaro 2011-03-25 03:57:23
你可以重新解釋這個問題嗎?我不明白。 – erisco 2011-03-25 04:19:31
那麼你的代碼有什麼問題? array_search($ key,$ array)應該沒問題。 – erisco 2011-03-25 04:47:33