За последние 24 часа нас посетили 133014 программистов и 7702 робота. Сейчас ищут 2038 программистов ...

Удаление из массива со сдвигом?

Тема в разделе "PHP для новичков", создана пользователем JeK@, 15 апр 2009.

  1. JeK@

    JeK@ Активный пользователь

    С нами с:
    11 апр 2009
    Сообщения:
    32
    Симпатии:
    0
    Как удалить из массива одно из его значений,но не обнульть,а именно удалить.
    Пример:нужно удалить из $_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]
     
  2. Mr.M.I.T.

    Mr.M.I.T. Старожил

    С нами с:
    28 янв 2008
    Сообщения:
    4.581
    Симпатии:
    1
    Адрес:
    у тебя канфетка?
    array_values()
     
  3. JeK@

    JeK@ Активный пользователь

    С нами с:
    11 апр 2009
    Сообщения:
    32
    Симпатии:
    0
    Что-то не получается,он также выводит пустую строку.Эта функция дастаёт все значения,вместе с пустым.
     
  4. Mr.M.I.T.

    Mr.M.I.T. Старожил

    С нами с:
    28 янв 2008
    Сообщения:
    4.581
    Симпатии:
    1
    Адрес:
    у тебя канфетка?
    PHP:
    1. <?
    2. $arr=array("one","two","tree","xz");
    3. print "<pre>Doo:\r\n";
    4. print_r($arr);
    5. print "\r\n\r\nPloxoe Posle:\r\n";
    6. unset($arr[2]);
    7. print_r($arr);
    8. print "\r\n\r\nXoroshee Posle:\r\n";
    9. print "</pre>";
    10.  ?>
    11.  
     
  5. JeK@

    JeK@ Активный пользователь

    С нами с:
    11 апр 2009
    Сообщения:
    32
    Симпатии:
    0
    У меня получается 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 )
     
  6. Apple

    Apple Активный пользователь

    С нами с:
    13 янв 2007
    Сообщения:
    4.982
    Симпатии:
    2
    Если уж на то пошло, перестраивай "вручную" структуру массива посредством циклов, перебирая каждый элемент.
     
  7. Kreker

    Kreker Старожил

    С нами с:
    8 апр 2007
    Сообщения:
    5.432
    Симпатии:
    0
    unset удаляет не только значение, но и ключ, при этом при вызове $array[1] PHP будет выдавать предупреждение Undefined Index. Проверьте пример Mr.M.I.T.
     
  8. VItalijs

    VItalijs Активный пользователь

    С нами с:
    17 дек 2008
    Сообщения:
    244
    Симпатии:
    0
    Адрес:
    Рига, Латвия

    а вы делаете?
    PHP:
    1. <? $_SESSION['list'] = array_values($_SESSION['list']) ?>