Найти переменную в массиве из переменной GET и удалить строку из массива - PullRequest
0 голосов
/ 08 января 2019

Мне нужно получить индексный номер массива путем поиска текста в массиве, но затем мне нужно удалить этот индекс массива и передать то, что осталось в текстовый файл?

Каждый индекс массива является разнесением многострочного текстового файла, который также содержит другой текст (включая HTML) в строках, но не содержит повторов в других строках искомого текста.

Пока у меня есть возможность удалить первый индекс массива, удалив эту строку в текстовом файле, но мне нужно найти, в каком индексе массива находится переменная $ something, и удалить эту строку ...

if($_GET['delete'] == $something){
    $create = fopen("info.txt", "r+t");
    $oldstuff = fread($create, 1024);
    $array = explode("\n", file_get_contents("info.txt"));
    unset($array[$something]);
    $string = implode("\n",$array);
    $newstuff = fopen("info.txt", "w+");
    fwrite($newstuff, $string);
    fclose($newstuff);
    fclose($create);

Ответы [ 2 ]

0 голосов
/ 08 января 2019

удалось добиться этого ...

if($_GET['delete']){
$name = "<li class='drinks'><span class='names'>".htmlspecialchars($_GET["delete"])."</span>";
$array = explode("\n", file_get_contents("info.txt"));
$key = array_search($user , $array);
if($key !== false) {
  unset($array[$key]);
};
$string = implode("\n", $array);
file_put_contents("info.txt", $string);

Спасибо за помощь. Понял, что другой контент всегда был одинаковым в каждой строке текстового файла, поэтому я мог бы включить его в array_search:)

0 голосов
/ 08 января 2019

Предполагая, что info.txt содержит несколько строк текста, и каждая строка разбивается на массив. Вы можете использовать функцию php array_search , чтобы найти строку, содержащую данную строку. так что вы можете написать что-то вроде этого:

if($_GET['delete'] == $something) {
    $create     = fopen("info.txt", "r+t");
    $oldstuff   = fread($create, 1024);
    $array      = explode("\n", file_get_contents("info.txt"));

    $find   = 'test'; // string you want to find
    $key    = array_search ($find , $array); // returns the index key if found or false if not found 
    if ($key) {
        unset($array[$key]);
    }

    $string = implode("\n", $array);
    $newstuff = fopen("info.txt", "w+");
    fwrite($newstuff, $string);
    fclose($newstuff);
    fclose($create);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...