代码之家  ›  专栏  ›  技术社区  ›  oopbase Jayachandran Murugesh

如何定义数组元素的顺序?

php
  •  1
  • oopbase Jayachandran Murugesh  · 技术社区  · 15 年前

    Array
            (
                [1] => a
                [2] => b
                [3] => c
                [4] => d
                [5] => e
                [6] => f
                [7] => g
                [8] => h
                [9] => i
                [11] => j
                [13] => k
                [14] => l
                [15] => m
                [16] => n
                [17] => o
                [18] => p
                [19] => q
                [20] => r
                [21] => s
                [22] => t
                [23] => u
                [24] => v
                [25] => w
            )
    

    是否有一个函数,使我的数组的范围从1到23?所以看起来像这样?

    Array
            (
                [1] => a
                [2] => b
                [3] => c
                [4] => d
                [5] => e
                [6] => f
                [7] => g
                [8] => h
                [9] => i
                [10] => j
                [11] => k
                [12] => l
                [13] => m
                [14] => n
                [15] => o
                [16] => p
                [17] => q
                [18] => r
                [19] => s
                [20] => t
                [21] => u
                [22] => v
                [23] => w
            )
    

    5 回复  |  直到 15 年前
        1
  •  11
  •   Wrikken    15 年前

    如果需要零索引数组:

    $new = array_values($array);
    

    如果您想从一个aribitrary数字开始(在本例中:1);

    $new = array_combine(range(1,count($array)),array_values($array));
    
        2
  •  3
  •   Felix Kling    15 年前

    那怎么办 range() ?

    $array = range('a', 'w');
    

    更新: 哦,你不是来自 1 23 . 干得好:

    $array = array_combine(range(1,23), range('a', 'w'));
    
        3
  •  2
  •   Anax    15 年前

    此代码段将执行以下操作:

    $new = Array();
    $i = 1;
    foreach ($original as $element) {
        $new[$i] = $element;
        $i++;
    }
    
        4
  •  0
  •   jkilbride    15 年前

    $newArray = array_values($array);
    
    $startAtIndex1Array = array();
    //shift indexes to start at 1
    foreach($newArray as $key=>$value) {
        $startAtIndex1Array[$key+1] = $value;
    }
    
        5
  •  -1
  •   Boris Delormas    15 年前
    $tmpArray = Array
            (
                [1] => a
                [2] => b
                [3] => c
                [4] => d
                [5] => e
                [6] => f
                [7] => g
                [8] => h
                [9] => i
                [11] => j
                [13] => k
                [14] => l
                [15] => m
                [16] => n
                [17] => o
                [18] => p
                [19] => q
                [20] => r
                [21] => s
                [22] => t
                [23] => u
                [24] => v
                [25] => w
            );
    
    foreach($tmpArray as $v){
      $tmpArray2[count($tmpArray2)] = $v;
    }
    

    它可以做你想做的,但是你应该考虑用一个key=0来启动你的数组