отсортировать массив и присвоить новые числовые ключи?

у меня есть массив как это (после того, как я сбросил некоторые элементы):

$array[3] = 'apple';
$array[5] = 'pear';
$array[23] = 'banana';

какую функцию делают я использую для сортировки их к:

$array[0] = 'apple';
$array[1] = 'pear';
$array[2] = 'banana';

я попробовал некоторые функции вида, но это не работало.

10
задан ajsie 23 December 2009 в 00:49
поделиться

3 ответа

Я не на 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
)
19
ответ дан 3 December 2019 в 14:53
поделиться
$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 )
4
ответ дан 3 December 2019 в 14:53
поделиться

ksort() отсортирует по ключам, затем получит значения с помощью array_values() и создаст новый массив с ключами от 0 до n-1.

ksort($array)
$array = array_values( $array );

Конечно, не нужно ksort, если он уже отсортирован по ключам. Вы также можете использовать array_values() напрямую.

.
8
ответ дан 3 December 2019 в 14:53
поделиться
Другие вопросы по тегам:

Похожие вопросы: