Я не уверен, я правильно понимаю ваш вопрос, но если вы уже знаете порядок, то какова цель создания этого массива.
Ну, я думаю, у меня есть два решения для сортировки этого массива в вашем порядке
Вариант 1
Укажите массив $order
(если он вам уже известен) и используйте usort
для сравнения значений массивов $age
и $order
. usort
найдет элементы $age
в массиве $order
.
$order = array(37, 56, 43, 32, 48);
$age = array(48, 37, 43, 56, 32);
usort($age, function ($a, $b) use ($order) {
$firstItem = array_search($a, $order);
$secondItem = array_search($b, $order);
return $firstItem - $secondItem;
});
print_r($age);
Я использовал Закрытие
в usort
для упрощения сортировки
выход
Array
(
[0] => 37
[1] => 56
[2] => 43
[3] => 32
[4] => 48
)
Вы можете проверить usort и
array_search
Вариант 2
Из вашего комментария я попытался придумать другой подход, который устанавливает ключи в массивах $age
и $order
и сравнивает оба массива для сортировки в произвольном порядке.
$order = array('students', 'adults', 'disable', 'enable', "variable");
$age = array(
'variable' => 48,
'students' => 37,
'disable' => 43,
'adults' => 56,
'enable' => 32
);
$ordered_array = array_merge(array_flip($order), $age);
print_r($ordered_array);
выход
Array
(
[students] => 37
[adults] => 56
[disable] => 43
[enable] => 32
[variable] => 48
)
Также проверьте
array_merge и
array_flip