У меня есть 2D ассоциативный массив, который выглядит примерно так:
[0] => Array
(
[foo]=>bar
[foo]=>bar
[foo]=>bar
)
[1] => Array
(
[foo]=>bar
[foo]=>bar
[foo]=>bar
)
[2] => Array
(
[foo]=>bar
[foo]=>bar
[foo]=>bar
)
Я хочу удалить один элемент, например [0], а затем "обновить" идентификаторы остальных элементов, поэтому [1] и его содержимое станет новым [0], [2] станет [1] и т.д.
Скажем, у вас есть эти значения массива в $ data. Затем вы удалили элемент
ex: unset($data[0]);
Теперь данные $ будут иметь
[1] => Array
(
[foo]=>bar
[foo]=>bar
[foo]=>bar
)
[2] => Array
(
[foo]=>bar
[foo]=>bar
[foo]=>bar
)
Теперь используйте функцию array_values ()
$data = array_values($data);
Теперь ассоциативный массив переупорядочивается до
[0] => Array
(
[foo]=>bar
[foo]=>bar
[foo]=>bar
)
[1] => Array
(
[foo]=>bar
[foo]=>bar
[foo]=>bar
)
Вы можете использовать array_values ():
$x = [
['foo1'=>'bar', 'foo2'=>'bar', 'foo3'=>'bar'],
['foo1'=>'bar', 'foo3'=>'bar', 'foo5'=>'bar'],
['foo1'=>'bar', 'foo3'=>'bar', 'foo5'=>'bar']];
unset($x[0]);
$x = array_values($x);
print_r($x);
вывод:
Array
(
[0] => Array
(
[foo1] => bar
[foo3] => bar
[foo5] => bar
)
[1] => Array
(
[foo1] => bar
[foo3] => bar
[foo5] => bar
)
)
предполагать
$arr = array(0=>array('a','b','c'),1=>array('a','b','c'),2=>array('a','b','c'));
Затем, чтобы получить ваше требование, выполните следующие действия:
unset($arr[0]);
$arr = array_values($arr);
unset($array[0])
, но почему так важно, чтобы ключи также сдвигались вверх?array_values()
должна сделатьarray_values()
дело