ФорумПрограммированиеPHP для идиотов → Удалить одно ключ-значение из массива

Удалить одно ключ-значение из массива

  • malaba

    Сообщения: 165 Репутация: N Группа: Кто попало

    Spritz 7 ноября 2009 г. 15:41

    Ночки доброй…
    Есть у меня один файл с сообщениями, где каждая строка это сообщение
    потом когда делаем file(msg.dat)
    получаем массив допустим из 20 элементов,а заморочка заключаеться в том чтобы удалить определенную строчку из этого файла…….после размышлений пришел к такой схеме:
    сначала ищем сообщение в файле и определяем на какой строчке оно находиться
    затем в один массив запихиваем все сообщения,расположенные до этой строчки а во второй массив все сообщения находящиеся после этой строчки, и записываем в файл…!
    Как то очень громоздко все это будет,может есть какие нибудь более простые и лаконичные способы, буду весьма благодарен если просветите
  • adw0rd

    Сообщения: 22905 Репутация: N Группа: в ухо

    Spritz 7 ноября 2009 г. 15:50, спустя 8 минут 26 секунд

    malaba, берешь все из файла через file(), удаляешь из массива строку которую тебе надо, записываешь весь массив полностью в файл (перезаписав предыдущие данные)
    adw/0
  • malaba

    Сообщения: 165 Репутация: N Группа: Кто попало

    Spritz 7 ноября 2009 г. 15:57, спустя 7 минут 48 секунд

    а как удалить строчку которую надо если она находиться в середине массива, я не нашел такую функцию, только удалить первый или последний элемент
  • adw0rd

    Сообщения: 22905 Репутация: N Группа: в ухо

    Spritz 7 ноября 2009 г. 16:02, спустя 4 минуты 52 секунды


    а как удалить строчку которую надо если она находиться в середине массива, я не нашел такую функцию, только удалить первый или последний элемент
    [man]unset[/man]
    adw/0
  • malaba

    Сообщения: 165 Репутация: N Группа: Кто попало

    Spritz 7 ноября 2009 г. 16:10, спустя 7 минут 51 секунду

    получаеться так

    $array = file(msg.dat);
    $str = "bla-bla";
    $find = array_search($str,$array);
    unset($array[$find]);

    а далее записываем получееныйы массив в файл…!?!?!?!?!
  • adw0rd

    Сообщения: 22905 Репутация: N Группа: в ухо

    Spritz 7 ноября 2009 г. 16:16, спустя 5 минут 56 секунд

    да
    adw/0
  • malaba

    Сообщения: 165 Репутация: N Группа: Кто попало

    Spritz 7 ноября 2009 г. 16:19, спустя 3 минуты 12 секунд

    о круто спасибочки
  • Troy

    Сообщения: 2532 Репутация: N Группа: Джедаи

    Spritz 7 ноября 2009 г. 21:26, спустя 5 часов 6 минут 52 секунды


    $array = file(msg.dat);
    $str = "bla-bla";
    $find = array_search($str,$array);
    unset($array[$find]);
    file_put_contents('msg.dat', implode('', $array));

Пожалуйста, авторизуйтесь, чтобы написать комментарий!