我有这段代码:array_search($key, $array)
。 $ key是1到10之间的任何数字。$ array看起来像这样:
id name
1 foo
2 bar
3 lol
4 asdf
我只是想在阵列中找到名字的位置。所以如果我有“foo”,我会得到0,如果我有“lol”,我会有2.任何帮助?
答案 0 :(得分:1)
$id = 2
foreach ($array as $value) {
if ($value['id'] == $id) {
echo $value['name'];
break;
}
}
答案 1 :(得分:0)
$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
。
答案 2 :(得分:0)
您需要使用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
答案 3 :(得分:-1)
<?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);
?>