Изменение порядка ключей массива PHP


Мой массив выглядит так:

array(
  0 => 'val',
  2 => 'val',
  3 => 'val',
  5 => 'val',
  7 => 'val'
);

Как я могу изменить порядок ключей, чтобы он выглядел так 0, 1, 2, 3, 4?

Author: Emil Vikström, 2012-06-27

4 answers

Использовать значения массива:

$reindexed_array = array_values($old_array);
 109
Author: Emil Vikström, 2012-06-27 11:08:32
array_splice($old_array, 0, 0);

Он не будет сортировать массив и не создаст второй массив

 12
Author: alekveritov, 2012-10-14 01:10:05

С помощью sort($array);

Смотрите документацию PHP здесь.

Я бы рекомендовал sort вместо array_values, так как это не создаст второй массив. С помощью следующего кода у вас теперь есть два массива, занимающих пространство: $reindexed_array и $old_array. Ненужный.

$reindexed_array = array_values($old_array);

 9
Author: Rawkode, 2012-06-27 11:13:27
array_splice($jam_array, 0, count($jam_array));

Для сортировки массива с отсутствующими промежуточными индексами с помощью count порядок более безопасен. Таким образом, 0 - это первый индекс, а count($jam_array) или sizeof($jam_array) возвращают десятичную позицию массива, а именно последний индекс.

 0
Author: fvlgnn, 2017-09-21 12:32:21