array_filter后key值为什么不能按照0,1,2,3...顺序排列?

<?php   

$entry = array(   
             0 => 'foo',   
             1 => false,   
             2 => -1,   
             3 => null,   
             4 => ''  
          );   

print_r(array_filter($entry));   
?>

结果:

Array   
(   
    [0] => foo   
    [2] => -1   
)  

结果中key为什么不是0,1?如何做到按顺序排列?

阅读 3.8k
2 个回答

没有为什么 内核就是这么写的,如果要去除索引 再外面加一层print_r(array_values(array_filter($entry)));

首先你该去看看手册关于array_filter 定义
http://php.net/manual/en/func...

其次你需要看看数组的定义!假如你想让其按照顺序,可以使用一些 array_map 之类的 函数!

当然楼上说的 array_values 也是可以!

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题