php如何在删除后初始化数组元素的顺序

时间:2012-12-21 13:03:56

标签: php arrays

我有以下数组:

array(3) {
  [0]=>
  array(3) {
    ["id_coach"]=>
    int(1)
    ["nom_coach"]=>
    string(4) "kaka"       
  }
  [1]=>
  array(3) {
    ["id_coach"]=>
    int(2)
    ["nom_coach"]=>
    string(7) "kiki"

  }
  [2]=>
  array(3) {
    ["id_coach"]=>
    int(3)
    ["nom_coach"]=>
    string(7) "koko"

  }

}

删除数组[1]后,我得到了这个数组:

array(2) {
      [0]=>
      array(3) {
        ["id_coach"]=>
        int(1)
        ["nom_coach"]=>
        string(4) "kaka"       
      }      
      [2]=>
      array(3) {
        ["id_coach"]=>
        int(3)
        ["nom_coach"]=>
        string(7) "koko"

      }

    }

我认为这是正常的,但请高手指出如何在删除后初始化它并改为:

array(2) {
      [0]=>
      array(3) {
        ["id_coach"]=>
        int(1)
        ["nom_coach"]=>
        string(4) "kaka"       
      }      
      [1]=>
      array(3) {
        ["id_coach"]=>
        int(3)
        ["nom_coach"]=>
        string(7) "koko"

      }

    }

提前谢谢!

3 个答案:

答案 0 :(得分:2)

使用array_values()

print_r( array_values( $array ) );

答案 1 :(得分:1)

$a2=array()
foreach($array as $v){
   $a2[]=$v;
}

应该工作。

但我觉得还有一个“正常化”键值的功能。

重读你的问题,我不认为在php中有任何方法强制数组总是有连续元素(像许多其他编程语言中的数组一样自动) - 在这方面,php数组更类似于哈希用其他语言。

答案 2 :(得分:1)

array_values()会这样做。

它将返回索引的值数组。

或者您可以使用array_splice删除元素。

array_splice($arr, 1, 1);
var_dump($arr);