Как удалить из массива одно из его значений,но не обнульть,а именно удалить. Пример:нужно удалить из $_SESSION['list'][] значение 4 (unset($_SESSION['list'][4])),а всего в массиве к примеру 7 значений.У меня получается так,что он вроде удаляет это значение,но получается не "0,1,2,3,4,5,6",а "0,1,2,3,--,5,6,7",тоесть значение 4 просто заменяется на пустоту. Как сделать,чтобы значение удалялось со сдвигам("1,2,3,4,5,6")[/b]
Что-то не получается,он также выводит пустую строку.Эта функция дастаёт все значения,вместе с пустым.
PHP: <? $arr=array("one","two","tree","xz"); print "<pre>Doo:\r\n"; print_r($arr); print "\r\n\r\nPloxoe Posle:\r\n"; unset($arr[2]); print_r($arr); print "\r\n\r\nXoroshee Posle:\r\n"; print_r(array_values($arr)); print "</pre>"; ?>
У меня получается Array ( [0] => 5 [1] => 1 [2] => 1 ),но нельзя удалить [1] => 1 и [2] => 1,которые как раз выводятся как пустота!!!ТОесть у меня массив $_SESSION['list'][],если начать его выводить,то $_SESSION['list'][1] или $_SESSION['list'][2] не выводит ничего,как так может быть,а через print_r (array_values($_SESSION['list'])) показывает Array ( [0] => 5 [1] => 1 [2] => 1 )
Если уж на то пошло, перестраивай "вручную" структуру массива посредством циклов, перебирая каждый элемент.
unset удаляет не только значение, но и ключ, при этом при вызове $array[1] PHP будет выдавать предупреждение Undefined Index. Проверьте пример Mr.M.I.T.