2012-08-28 95 views
2

我有一个数组,我想获得一个特定的值的位置之后PHP数组获取特定值

例子:

$my_array = array(0,2,5,3,7,4,5,2,1,6,9); 

我的搜索是5号位置在序列号5为(和)

如果我调用array_search函数,总是返回阵列女巫的第一个位置是。

有无论如何获得具体价值的两个或多个位置?

回答

11

使用array_keys与可选的搜索参数,应返回所有的键。

$matches = array_keys($my_array, 5);

+0

是的谢谢你使用array_keys更好,谢谢christian.thomas – AkisC

+0

如果数组键被改变,该怎么办? – Aabid

+0

完美。感谢这个真棒解决方案 – BoCyrill

1

只是循环阵列上:

/* 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; 
} 
+0

谢谢回答埃米尔Vikström分隔值的数组,是的,这作品! – AkisC

1
$result = array(); 
    foreach ($array as $key => $value) 
    { 
     $result[$value] =implode(',',array_keys($array,$value)) 

    } 
    echo '<pre>'; 
print_r($result); 

它会给你价值观的关键和它们的出现是由逗号