我有一个数组:
Array
(
[0] => 20140929102023_taxonomies.zip
[1] => 20140915175317_taxonomies.zip
[2] => 20140804112307_taxonomies.zip
[3] => 20141002162349_taxonomies.zip
)
我想用前14个字符的字符来命令这个数组,它代表一个日期。 我想要一个像这样的数组:
Array
(
[0] => 20140804112307_taxonomies.zip
[1] => 20140915175317_taxonomies.zip
[2] => 20140929102023_taxonomies.zip
[3] => 20141002162349_taxonomies.zip
)
感谢。
答案 0 :(得分:0)
使用自然排序算法的sort()
函数应该可以为您提供所需的结果。它就这么简单。
sort($array, SORT_NATURAL);
这会更新现有的$array
变量,您不需要存储sort
函数的返回值。它只是返回true或falseon成功和失败。
sort函数也会更新键,如果由于某种原因需要维护键,只需更新顺序,就可以使用asort()
。
asort($array, SORT_NATURAL);
PHP有很多方法可以对数组进行排序,你可以找到here的手册。
答案 1 :(得分:0)
无需使用自然排序算法。正常的sort()会产生你想要的效果,因为它会比较每个字符串“从左边开始”。例如,“20141002162349_taxonomies.zip”大于“20140929102023_taxonomies”,因为第五个字符(月份的第一个数字)在第一个中是1而在第二个中是0(并且1> 0,即使在字符串中 - 比较适用于ASCII码点)。
所以:
<?php
$array = array('20141002162349_taxonomies.zip', '20140929102023_taxonomies.zip', '20140804112307_taxonomies.zip', '20140915175317_taxonomies.zip');
sort($array);
var_dump($array);
结果:
array(4) {
[0]=>
string(29) "20140804112307_taxonomies.zip"
[1]=>
string(29) "20140915175317_taxonomies.zip"
[2]=>
string(29) "20140929102023_taxonomies.zip"
[3]=>
string(29) "20141002162349_taxonomies.zip"
}