我有一个数组,我想获得一个特定的值的位置之后PHP数组获取特定值
例子:
$my_array = array(0,2,5,3,7,4,5,2,1,6,9);
我的搜索是5号的位置在序列号5为(和)
如果我调用array_search
函数,总是返回阵列女巫的第一个位置是。
有无论如何获得具体价值的两个或多个位置?
我有一个数组,我想获得一个特定的值的位置之后PHP数组获取特定值
例子:
$my_array = array(0,2,5,3,7,4,5,2,1,6,9);
我的搜索是5号的位置在序列号5为(和)
如果我调用array_search
函数,总是返回阵列女巫的第一个位置是。
有无论如何获得具体价值的两个或多个位置?
使用array_keys与可选的搜索参数,应返回所有的键。
$matches = array_keys($my_array, 5);
只是循环阵列上:
/* Searches $haystack for $needle.
Returns an array of keys for $needle if found,
otherwise an empty array */
function array_multi_search($needle, $haystack) {
$result = array();
foreach ($haystack as $key => $value)
if ($value === $needle)
$result[] = $key;
return $result;
}
谢谢回答埃米尔Vikström分隔值的数组,是的,这作品! – AkisC
看一看array_keys第二个参数。你可以拿到钥匙只匹配$search_value
$result = array();
foreach ($array as $key => $value)
{
$result[$value] =implode(',',array_keys($array,$value))
}
echo '<pre>';
print_r($result);
它会给你价值观的关键和它们的出现是由逗号
是的谢谢你使用array_keys更好,谢谢christian.thomas – AkisC
如果数组键被改变,该怎么办? – Aabid
完美。感谢这个真棒解决方案 – BoCyrill