У вас здесь массив хэшей; то есть каждый элемент вашего массива является хешем (структура, содержащая элементы, каждая из которых идентифицируется ключом).
Для того, чтобы добавить ключ и значение, вы просто присвоить его, как это:
$array[0]["distance"]=100;
$array[1]["distance"]=300;
#and so on
PHP хэши и массивы в целом задокументированы here.
Теперь, чтобы отсортировать массив (каждый из элементов которого является хэшем), вам нужно использовать функцию «uasort», которая позволяет вам определить функцию сравнения; в этой функции сравнения вы определяете поведение, которое хотите, которое сортирует по значению ключа расстояния.
Что-то вроде этого:
// Comparison function, this compares the value of the "distance" key
// for each of the two elements being compared.
function cmp($a, $b) {
if ($a["distance"] == $b["distance"]) {
return 0;
}
return ($a["distance"] < $b["distance"]) ? -1 : 1;
}
После того, как это определено, вы называете uasort как это:
uasort($array, 'cmp');
Найти больше документации на uasort here.
Отделка/сортировка/декорация рисунка отлично работает (и быстро)! Благодаря! – cateye
Наконец-то кто-то оценил это! Я узнал об этом из python и попытался проникнуть в мои ответы на php-вопросы, но людям это пока не понравилось. Вероятно, они не хотели беспокоиться о том, как это работает. usort() проще, но я думаю, что по крайней мере в некоторых случаях (может быть, большинство?) это может быть медленнее –