Сортировка php массива с сохранением связи "ключ /значение"
Данный материал предоставлен сайтом
PacificSky.Ru исключительно в ознакомительных целях. Администрация не несет ответственности за его содержимое.
Функция sort() не сохраняет связи "ключ/значение". Вместо этого элементы индексируются по возрастанию начиная с 0.
Для того, чтобы сохранить связи "ключ/значение" , необходимо воспользоваться функцией asort().
Данная функция позволяет сортировать массивы с "ключами" содержащими полезную информацию.
Полученный массив:
<?php
$array = array(1 => 'Буква', 'new' => 'Дом', 'Лес', 'Плотник', 'pacificsky');
asort($array);
var_dump($array);
?>
Результат:
array(5) { [4]=> string(10) "pacificsky" [1]=> string(10) "Буква" ["new"]=> string(6) "Дом" [2]=> string(6) "Лес" [3]=> string(14) "Плотник" }
Варианты перебора массива.
Первый вариант цикл foreach:
<?php
$array = array(1 => 'Буква', 'new' => 'Дом', 'Лес', 'Плотник', 'pacificsky');
asort($array);
foreach($array as $key => $value) {
echo "Значение: {$value} имеет ключ: \"{$key}\"<br />\n";
}
?>
Результат:
Значение: pacificsky имеет ключ: "4"
Значение: Буква имеет ключ: "1"
Значение: Дом имеет ключ: "new"
Значение: Лес имеет ключ: "2"
Значение: Плотник имеет ключ: "3"
Значение: Буква имеет ключ: "1"
Значение: Дом имеет ключ: "new"
Значение: Лес имеет ключ: "2"
Значение: Плотник имеет ключ: "3"
Второй вариант цикл while
<?php
$array = array(1 => 'Буква', 'new' => 'Дом', 'Лес', 'Плотник', 'pacificsky');
asort($array);
while(list($key, $value) = each($array)) {
echo "Значение: {$value} имеет ключ: \"{$key}\"<br />\n";
}
?>
Результат:
Значение: pacificsky имеет ключ: "4"
Значение: Буква имеет ключ: "1"
Значение: Дом имеет ключ: "new"
Значение: Лес имеет ключ: "2"
Значение: Плотник имеет ключ: "3"
Значение: Буква имеет ключ: "1"
Значение: Дом имеет ключ: "new"
Значение: Лес имеет ключ: "2"
Значение: Плотник имеет ключ: "3"
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.