Вопрос по php – Сбросить ключи элементов массива в php?
Вопрос в том, как сбросить ключ, например. для массива:
<code>Array ( [1_Name] => Array ( [1] => leo [4] => NULL ) [1_Phone] => Array ( [1] => 12345 [4] => 434324 ) ) </code>
сбросить на:
<code>Array ( [1_Name] => Array ( [0] => leo [1] => NULL ) [1_Phone] => Array ( [0] => 12345 [1] => 434324 ) ) </code>
Проверьте этот ответ:stackoverflow.com/questions/5943149/…
5
ответов
deceze предложил по сравнению с простымarray_values
подход:
Массив:
$array['a'][0] = array('x' => 1, 'y' => 2, 'z' => 3);
$array['a'][5] = array('x' => 4, 'y' => 5, 'z' => 6);
$array['b'][1] = array('x' => 7, 'y' => 8, 'z' => 9);
$array['b'][7] = array('x' => 10, 'y' => 11, 'z' => 12);
Вdeceze
Кстати, вот ваш вывод:
$array = array_map('array_values', $array);
print_r($array);
/* Output */
Array
(
[a] => Array
(
[0] => Array
(
[x] => 1
[y] => 2
[z] => 3
)
[1] => Array
(
[x] => 4
[y] => 5
[z] => 6
)
)
[b] => Array
(
[0] => Array
(
[x] => 7
[y] => 8
[z] => 9
)
[1] => Array
(
[x] => 10
[y] => 11
[z] => 12
)
)
)
А вот ваш вывод, если вы используете толькоarray_values
функция:
$array = array_values($array);
print_r($array);
/* Output */
Array
(
[0] => Array
(
[0] => Array
(
[x] => 1
[y] => 2
[z] => 3
)
[5] => Array
(
[x] => 4
[y] => 5
[z] => 6
)
)
[1] => Array
(
[1] => Array
(
[x] => 7
[y] => 8
[z] => 9
)
[7] => Array
(
[x] => 10
[y] => 11
[z] => 12
)
)
)
http://php.net/manual/en/function.reset.php
Просто сделайте это:mixed reset ( array &$array )
Он просто перемещает указатель на первый элемент массива. Поисковый топик ищет способ сбрасывать ключи в состоянии по умолчанию 0, 1, 2 ... N.
Пожалуйста, прочитайте руководство, на которое вы ссылаетесь;
reset
делает что-то еще
$arr = array_map('array_values', $arr);
Если вы просто хотите сбросить ключи массива первого уровня, используйтеarray_values()
безarray_map
.
@SSH Вы использовали это наarray of arrays-А как здесь звали?
Я не знаю, задокументировано ли использование array_values для сброса значений, но так и должно быть. Это действительно помогло сократить количество строк, которые я писал :)
Нет, это была проблема, я думал, что это должно было "Сбросить ключи элементов массива", это не так.
По какой-то причине ключи моего массива не были сброшены, пришлось использовать только
array_values
функция.
вам не нужно использовать array_map: $ ret = array_values ($ ret); достаточно для сброса цифровых клавиш
Похожие вопросы
Проверьте этот ответ:<a href="http://stackoverflow.com/questions/5943149/rebase-array-keys-after-unsetting-elements/24332702#24332702" title="rebase array keys after unsetting elements">stackoverflow.com/questions/5943149/…</a>