Что такое встроенная функция PHP для «сжатия» или «дефрагментации» массива? - PullRequest
2 голосов
/ 11 июля 2009

Я знаю, что было бы тривиально самому писать код, но в интересах не иметь больше кода для поддержки, если он уже встроен в PHP, есть ли встроенная функция для «сжатия» массива PHP? Другими словами, скажем, я создаю массив таким образом:

$array = array();
$array[2000] = 5;
$array[3000] = 7;
$array[3500] = 9;

Мне нужен массив, в котором $ array [0] == 5, $ array [1] == 7, $ array [2] == 9.

Я мог бы сделать это:

function array_defragment($array) {
    $squashed_array = array();
    foreach ($array as $item) {
        $squashed_array[] = $item;
    }
    return $squashed_array;
}

... но это похоже на то, что встроено в PHP - я просто не могу найти его в документации.

1 Ответ

13 голосов
/ 11 июля 2009

Просто используйте array_values:

$array = array();
$array[2000] = 5;
$array[3000] = 7;
$array[3500] = 9;

$array = array_values($array);
var_dump($array === array(5, 7, 9));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...