Выравнивание значений массива в PHP - PullRequest
0 голосов
/ 25 декабря 2010

Я гуглил его два дня и пытался просмотреть руководство по PHP, и до сих пор не могу вспомнить ту функцию, которая выравнивает значения ключей для массивов PHP.

Все, что я ищуэто функция, которая принимает это:

Array
(
    [0] => 1
    [3] => 2
    [4] => 3
    [7] => 4
    [9] => 5
)

и преобразует его в это:

Array
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
    [4] => 5
)

В основном, массив сначала сортируется по ключу (их значения, прикрепленные к ним, остаются с ними), затем все ключи устанавливаются на все счетные числа, последовательно, не пропуская ни одного числа (0,1,2,3,4,5,6,7,8,9 ...).Я видел, как он использовался с ksort () несколько месяцев назад, и не могу вспомнить или найти эту неуловимую функцию.

Ответы [ 3 ]

3 голосов
/ 25 декабря 2010

Ну, вы видите, это сложно, потому что общее описание на странице функций массива PHP не говорит, что эта функция делает то, что вы ищете.

Но вы можете отсортировать массив, используя ksort(), а затем использовать это: array_values(). Со страницы из руководства по PHP:

array_values() возвращает все значения из входного массива и численно индексирует массив.

1 голос
/ 25 декабря 2010

Вы можете использовать array_merge:

$array = array_merge($array);

Будет переиндексировать значения с помощью цифровых клавиш.

Обновление: Использование array_values, как предложено в @ LostInTheCode, ответ , вероятно, более нагляден.

0 голосов
/ 25 декабря 2010
function array_reset_index_keys($array)
{
    $return = array();foreach($array as $k => $v){$return[] = $v;}return $return;
}

И затем использовать как обычную функцию, следует переиндексировать массив

, вы также можете использовать встроенные функции, такие как array_values, которые возвращают значения массива в один массив измерений, чтоон будет переиндексирован.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...