упорядочить массив php по подстроке

У меня есть массив:

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

Решение

sort() Функция с естественным алгоритмом сортировки должна дать вам результат, который вы ищете. Это так просто.

sort($array, SORT_NATURAL);

Это обновит существующий $array переменная, вам не нужно хранить возврат sort функция. Он просто возвращает истину или ложь успеха и неудачи.

Функция сортировки также обновит ключи, если по какой-то причине вам нужно сохранить ключи и просто обновить порядок, вы можете использовать asort().

asort($array, SORT_NATURAL);

PHP имеет множество способов сортировки массивов, вы можете найти руководство для этого Вот.

0

Другие решения

Нет необходимости использовать естественные алгоритмы сортировки. Нормальный Сортировать() даст желаемый эффект, так как он будет сравнивать каждую строку «начиная слева». Например, «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"}
0

По вопросам рекламы [email protected]