Q:

чтение файла на php и обработка данных

Имеется текстовый файл в котором много строк, в каждой строке написано:
дата добавления|ФИО|адрес человека|город|почтовый индек|номер телефона(где то и нет)|
разделителем является прямая палочка как в примере
нужно на PHP прочитать этот файл, и отсортировать людей по городу проживания.
T.е. что-то в таком виде должно получится: 
09.02.16|Станислав....|Москва|113623|+7.....91
07.02.16|Енакентий....|Москва|105173|+7.....92
09.03.16|Роман....|Москва|141411|+7.....93
11.04.16|Иван....|Москва|127204|+7.....94
29.05.16|Станислав....|Москва|143350|+7.....95

помогите пожалуйста реализовать код)

A:

Поддерживаю ArchDemon, но самому было интересно решить данную задачу.
Примите код, как подарок))
P.S. Хороший пост на данную тему тут.

Код - чисто костыль, он не практичен и предназначен сугубо для одноразового решения Вашей задачи.

Пример работает с версией PHP 5.2 и ниже
$str = file('путь_до_файла_со_списком');

usort($str, 'sortByOrder'); // Сортируем

// Сама функция, где прописана логика сортировки
function sortByOrder($a, $b) {
    $expA = explode("|", $a); // Разбиваем строку на массив
    $expB = explode("|", $b); // тоже самое
    return $expA[2] > $expB[2];
}

// Тут просто печатаем отсортированный массив
foreach($str as $line) {
    echo $line.'<br />';
}

Для версии PHP 5.3 и выше можем то же сделать с помощью безымянной функции
usort($str, function($a, $b) {
    $expA = explode("|", $a);
    $expB = explode("|", $b);
    return $expA[2] > $expB[2];
});

