Как бы я отсортировал массив, так как значения перемещаются, а индекс остается неподвижным. Я написал этот код ниже, хотя ответ, который он дал, не идеален.
$array = array(6,2,22,15,33,40,30,70,65);
asort($array,);
print_r($array);
Теперь это сортирует значения, но индекс перемещается вместе со значением. Я получаю ответ;
Array ( [1] => 2 [0] => 6 [3] => 15 [2] => 22 [6] => 30 [4] => 33 [5] => 40 [8] => 65 [7] => 70 )
Хотя мне бы хотелось, чтобы это показывалось следующим образом;
Array ( [0] => 2 [1] => 6 [2] => 15, etc.
Спасибо!
использование array_combine ()*
Он объединяет два массива в один, используя первый в качестве набора ключей, а второй — в качестве набора значений для нового массива.
Таким образом, в основном вам нужно только получить оригинальные ключи и отсортированные значения, а затем передать их array_combine()
,
$a = [
'a' => 'orange',
'b' => 'apple',
'o' => 'banana',
];
$tmp = $a;
sort($tmp);
$result = array_combine(array_keys($a), $tmp);
var_dump($a, $result);
Вы можете попробовать это Вот.
Приветствия.
*: доступно из PHP 5.
Других решений пока нет …