2013-06-21 28 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