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

PHP重置数组为连续数字索引的几种方式总结

发布:smiling 来源: PHP粉丝网  添加日期:2021-09-04 23:27:40 浏览: 评论:0 

下面小编就为大家分享一篇PHP重置数组为连续数字索引的几种方式总结,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧。

比如这样的一个php数组:

  1. $arr = array(  
  2.   1 => 'apple',  
  3.   3 => 'banana',  
  4.   5 => 'orange'  
  5. ); 

想要转换为这样的数组:

  1. $arr = array(  
  2.   0 => 'apple',  
  3.   1 => 'banana',  
  4.   2 => 'orange'  
  5. ); 

1、推荐的方式 array_values 方法

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

  1. <?php 
  2.    
  3. $arr = array(  
  4.   1 => 'apple',  
  5.   3 => 'banana',  
  6.   5 => 'orange'  
  7. );  
  8.    
  9. print_r(array_values($arr));  
  10.    
  11. $arr1 = array(  
  12.   'name' => 'jerry',  
  13.   'age' => 16,  
  14.   'height' => '18cm'  
  15. );  
  16.    
  17. print_r(array_values($arr1)); 

输出结果:

  1. [root@localhost php]# php array.php   
  2. Array  
  3. (  
  4.   [0] => apple  
  5.   [1] => banana  
  6.   [2] => orange  
  7. )  
  8. Array  
  9. (  
  10.   [0] => jerry  
  11.   [1] => 16  
  12.   [2] => 18cm  

2、使用 array_merge 方法

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

  1. <?php 
  2.    
  3. $arr = array(  
  4.   1 => 'apple',  
  5.   3 => 'banana',  
  6.   5 => 'orange'  
  7. );  
  8.    
  9. print_r(array_merge($arr));  
  10.    
  11. $arr1 = array(  
  12.   'name' => 'jerry',  
  13.   'age' => 16,  
  14.   'height' => '18cm'  
  15. );  
  16.    
  17. print_r(array_merge($arr1)); 

输出结果:

  1. [root@localhost php]# php array.php   
  2. Array  
  3. (  
  4.   [0] => apple  
  5.   [1] => banana  
  6.   [2] => orange  
  7. )  
  8. Array  
  9. (  
  10.   [name] => jerry  
  11.   [age] => 16  
  12.   [height] => 18cm  

3、循环遍历

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

  1. <?php 
  2.    
  3. function resetArr($arr){  
  4.   $temp = array();  
  5.   foreach($arr as $v){  
  6.     $temp[] = $v;  
  7.   }  
  8.   return $temp;  
  9. }  
  10.    
  11. $arr = array(  
  12.   1 => 'apple',  
  13.   3 => 'banana',  
  14.   5 => 'orange'  
  15. );  
  16.    
  17. print_r(resetArr($arr));  
  18.    
  19. $arr1 = array(  
  20.   'name' => 'jerry',  
  21.   'age' => 16,  
  22.   'height' => '18cm'  
  23. );  
  24.    
  25. print_r(resetArr($arr1));

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

分享到: