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

 我来答
折柳成萌
高粉答主

2018-06-11 · 繁杂信息太多,你要学会辨别
知道顶级答主
回答量:4.4万
采纳率:96%
帮助的人:6242万
展开全部

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

比如这样的一个php数组:

[php] view plain copy

  • $arr = array(  

  • 1 => 'apple',  

  • 3 => 'banana',  

  • 5 => 'orange'  

  • );  


  • 想要转换为这样的数组:

    [php] view plain copy

  • $arr = array(  

  • 0 => 'apple',  

  • 1 => 'banana',  

  • 2 => 'orange'  

  • );  


  • 1、推荐的方式  array_values 方法

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

    [php] view plain copy

  • <?php  

  • $arr = array(  

  • 1 => 'apple',  

  • 3 => 'banana',  

  • 5 => 'orange'  

  • );  

  • print_r(array_values($arr));  

  • $arr1 = array(  

  • 'name' => 'jerry',  

  • 'age' => 16,  

  • 'height' => '18cm'  

  • );  

  • print_r(array_values($arr1));  

  • 输出结果:

    [sql] view plain copy

  • [root@localhost php]# php array.php   

  • Array  

  • (  

  • [0] => apple  

  • [1] => banana  

  • [2] => orange  

  • )  

  • Array  

  • (  

  • [0] => jerry  

  • [1] => 16  

  • [2] => 18cm  

  • )  


  • 2、使用 array_merge 方法

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

    [php] view plain copy

  • <?php  

  • $arr = array(  

  • 1 => 'apple',  

  • 3 => 'banana',  

  • 5 => 'orange'  

  • );  

  • print_r(array_merge($arr));  

  • $arr1 = array(  

  • 'name' => 'jerry',  

  • 'age' => 16,  

  • 'height' => '18cm'  

  • );  

  • print_r(array_merge($arr1));  


  • 输出结果:

    [php] view plain copy

  • [root@localhost php]# php array.php   

  • Array  

  • (  

  • [0] => apple  

  • [1] => banana  

  • [2] => orange  

  • )  

  • Array  

  • (  

  • [name] => jerry  

  • [age] => 16  

  • [height] => 18cm  

  • )  


  • 3、循环遍历

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

    [php] view plain copy

  • <?php  

  • function resetArr($arr){  

  • $temp = array();  

  • foreach($arr as $v){  

  • $temp[] = $v;  

  • }  

  • return $temp;  

  • }  

  • $arr = array(  

  • 1 => 'apple',  

  • 3 => 'banana',  

  • 5 => 'orange'  

  • );  

  • print_r(resetArr($arr));  

  • $arr1 = array(  

  • 'name' => 'jerry',  

  • 'age' => 16,  

  • 'height' => '18cm'  

  • );  

  • print_r(resetArr($arr1));  


  • That‘s it!

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式