2013-06-21 68 views
2

我在PHP中的数组如下所示:如何在PHP中获取密钥的索引号?

[0] => Array 
    (
     [41] => 20 
     [2] => 42 
     [3] => 30 
     [12] => 94 
     [32] => -2 
     [39] => -3 
     [40] => -15 
    ) 

我只是想获取某个特定键的索引号,如关键41的索引号为0,关键的索引号:21,依此类推。所以请告诉我如何在PHP中执行此操作。谢谢

回答

5

快速方式

$number = array_search($index, array_keys($array)); 

龙方式

$i = 0; 
$number = false; 
foreach ($array as $key => $value){ 
if ($key == $index){ 
    $number = $i; 
    break;} 
$i++; 
} 
+0

我想只是['array_keys()'](http://php.net/array-keys)就足够了。 – BlitZ

+0

嘿..谢谢你的...它为我工作..非常感谢。 –

+0

@NavedAhmed你想这样回答? –

0

如果内存使用情况没有问题,我会维护第二个数组,这将保存键索引关系。否则,你必须在你的数组中搜索指定的索引(使用foreach循环)。

+0

嘿,谢谢你的回复,但sectus的回复为我工作。 –

+0

这是一个很好的答案。我总是忘记array_函数。 :) –

0
<?php 
function multiarray_keys($ar) 
{ 
    foreach($ar as $k => $v) 
    { 
    $keys[] = $k; 
    if (is_array($ar[$k])) 
     $keys = array_merge($keys, multiarray_keys($ar[$k])); 
    } 
    return $keys; 
} 
?> 

实施例的代码:

<?php 
     $array = array("color" => array("1stcolor" => "blue", "2ndcolor" => "red", "3rdcolor" => "green"),"size" => array("small", "medium", "large")); 
echo "<pre>"; 
print_r($array); 
echo "</pre>"; 
echo "<pre>"; 
print_r(multiarray_keys($array)); 
echo "</pre>"; 

>

Example output: 

Array 
( 
    [color] => Array 
    (
     [1stcolor] => blue 
     [2ndcolor] => red 
     [3rdcolor] => green 
    ) 
    [size] => Array 
    (
     [0] => small 
     [1] => medium 
     [2] => large 
    ) 
) 
Array 
(
    [0] => color 
    [1] => 1stcolor 
    [2] => 2ndcolor 
    [3] => 3rdcolor 
    [4] => size 
    [5] => 0 
    [6] => 1 
    [7] => 2 
) 
+0

嘿nirav,感谢您的答复,我感谢您的回答。 –

+0

这不是这个问题的答案 – sectus