当前位置:首页 > PHP教程 > php数组 > 列表

PHP重置数组为连续数字索引的三种方式

发布:smiling 来源: PHP粉丝网  添加日期:2022-07-04 09:36:23 浏览: 评论:0 

PHP重置数组为连续数字索引的三种方式

比如这样的一个php数组:

  1. $arr = array
  2.  
  3.     1 => 'apple'
  4.  
  5.     3 => 'banana'
  6.  
  7.     5 => 'orange' 
  8.  
  9. ); 

想要转换为这样的数组:

  1. $arr = array
  2.  
  3.     0 => 'apple'
  4.  
  5.     1 => 'banana'
  6.  
  7.     2 => 'orange' 
  8.  
  9. ); 

1、推荐的方式 array_values 方法

这样方式无论对普通数组还是关联数组都适用

  1. <?php 
  2.  
  3. $arr = array
  4.  
  5.     1 => 'apple'
  6.  
  7.     3 => 'banana'
  8.  
  9.     5 => 'orange' 
  10.  
  11. ); 
  12.  
  13.  
  14.  
  15. print_r(array_values($arr)); 
  16.  
  17.  
  18.  
  19. $arr1 = array
  20.  
  21.     'name' => 'jerry'
  22.  
  23.     'age' => 16, 
  24.  
  25.     'height' => '18cm' 
  26.  
  27. ); 
  28.  
  29.  
  30.  
  31. print_r(array_values($arr1)); 

输出结果:

  1. [root@localhost php]# php array.php  
  2.  
  3. Array 
  4.  
  5.  
  6.     [0] => apple 
  7.  
  8.     [1] => banana 
  9.  
  10.     [2] => orange 
  11.  
  12.  
  13. Array 
  14.  
  15.  
  16.     [0] => jerry 
  17.  
  18.     [1] => 16 
  19.  
  20.     [2] => 18cm 
  21.  

2、使用 array_merge 方法

该方法如果只给了一个数组并且该数组是数字索引的,则键名会以连续方式重新索引。所以只能适用于数字索引。

  1. <?php 
  2.  
  3.  
  4.  
  5. $arr = array
  6.  
  7.     1 => 'apple'
  8.  
  9.     3 => 'banana'
  10.  
  11.     5 => 'orange' 
  12.  
  13. ); 
  14.  
  15.  
  16.  
  17. print_r(array_merge($arr)); 
  18.  
  19.  
  20.  
  21. $arr1 = array
  22.  
  23.     'name' => 'jerry'
  24.  
  25.     'age' => 16, 
  26.  
  27.     'height' => '18cm' 
  28.  
  29. ); 
  30.  
  31.  
  32.  
  33. print_r(array_merge($arr1)); 

输出结果:

  1. [root@localhost php]# php array.php  
  2.  
  3. Array 
  4.  
  5.  
  6.     [0] => apple 
  7.  
  8.     [1] => banana 
  9.  
  10.     [2] => orange 
  11.  
  12.  
  13. Array 
  14.  
  15.  
  16.     [name] => jerry 
  17.  
  18.     [age] => 16 
  19.  
  20.     [height] => 18cm 
  21.  

3、循环遍历

最原始的方式,臃肿且不够优雅,极力抵制。

  1. <?php 
  2.  
  3.  
  4.  
  5. function resetArr($arr){ 
  6.  
  7.     $temp = array(); 
  8.  
  9.     foreach($arr as $v){ 
  10.  
  11.         $temp[] = $v
  12.  
  13.     } 
  14.  
  15.     return $temp
  16.  
  17.  
  18.  
  19.  
  20. $arr = array
  21.  
  22.     1 => 'apple'
  23.  
  24.     3 => 'banana'
  25.  
  26.     5 => 'orange' 
  27.  
  28. ); 
  29.  
  30.  
  31.  
  32. print_r(resetArr($arr)); 
  33.  
  34.  
  35.  
  36. $arr1 = array
  37.  
  38.     'name' => 'jerry'
  39.  
  40.     'age' => 16, 
  41.  
  42.     'height' => '18cm' 
  43.  
  44. ); 
  45.  
  46.  
  47.  
  48. print_r(resetArr($arr1)); 

That‘s it!

Tags: PHP重置数组 PHP连续数字索引

分享到: