у меня есть массив как это (после того, как я сбросил некоторые элементы):
$array[3] = 'apple';
$array[5] = 'pear';
$array[23] = 'banana';
какую функцию делают я использую для сортировки их к:
$array[0] = 'apple';
$array[1] = 'pear';
$array[2] = 'banana';
я попробовал некоторые функции вида, но это не работало.
Я не на 100% уверен, в чем вы заключаете свои намерения. Чтобы просто отсортировать массив по значению -, но назначить новые ключи, используйте sort()
:
sort($array);
print_r($array);
Ключи - не сохраняются в этой конкретной функции. Вывод:
Array
(
[0] => apple
[1] => banana
[2] => pear
)
Но если вы хотите отсортировать массив по значению ключа, используйте ksort()
:
ksort($array);
print_r($array);
Вывод:
Array
(
[3] => apple
[5] => pear
[23] => banana
)
Это сохранит ключи. Для переназначения ключей для массива от 0 и далее используйте array_values()
на результат:
ksort($array);
$array_with_new_keys = array_values($array); // sorted by original key order
print_r($array_with_new_keys);
-выход:
Array
(
[0] => apple
[1] => pear
[2] => banana
)
$arrayOne = array('one','two','three'); //You set an array with certain elements
unset($array[1]); //You unset one or more elements.
$arrayTwo = array_values($arrayOnw); //You reindex the array into a new one.
print_r($arrayTwo); //Print for prove.
Результаты print_r
следующие:
Array ( [0] => one [1] => three )
ksort() отсортирует по ключам, затем получит значения с помощью array_values() и создаст новый массив с ключами от 0
до n-1
.
ksort($array)
$array = array_values( $array );
Конечно, не нужно ksort, если он уже отсортирован по ключам. Вы также можете использовать array_values() напрямую.
.