2

我在 PHP 中有一个数组,如下所示:

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

我只想获取特定键的索引号,例如键的索引号41is 0,键的索引号:2is 1,等等。所以请告诉我如何在PHP中做到这一点。谢谢

4

3 回答 3

5

快捷方式

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

很长的路要走

$i = 0;
$number = false;
foreach ($array as $key => $value){
if ($key == $index){
    $number = $i;
    break;}
$i++;
}
于 2013-06-21T05:52:30.673 回答
0

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

于 2013-06-21T05:51:58.270 回答
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
 )
于 2013-06-21T06:42:04.427 回答