За последние 24 часа нас посетили 20146 программистов и 1003 робота. Сейчас ищут 273 программиста ...

Запись в цикле строки в начало файла

Тема в разделе "PHP для новичков", создана пользователем gazlevodiva, 14 авг 2018.

Метки:
  1. gazlevodiva

    gazlevodiva Новичок

    С нами с:
    22 фев 2018
    Сообщения:
    19
    Симпатии:
    0
    Есть цикл, который построчно записывает в файл.
    PHP:
    1.  foreach ($data as $key => $value) {      
    2.               foreach ($data[$key] as $key2 => $value2) {
    3.  
    4.                 if($key2 == 'status' and $value2 == 'available'){                                                          
    5.                        fwrite($f, $key.' = '.$value2.';'."\r\n");}
    6.  
    7.             elseif($key2 == 'status' and ($value2 == 'regthroughothers' or $value2 == 'regthroughus'  or $value2 == 'unknown')) {                                              
    8.                        fwrite($f, $key.' = '.$value2.';'."\r\n");}
    9.  
    10.                        }   }}
    11.                    fclose($f);
    Как сделать так, что available он записывал в начало файла, а все остальное в конец?
     
  2. Valick

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

    С нами с:
    12 авг 2018
    Сообщения:
    1.911
    Симпатии:
    328
    1) откуда берётся массив $data?
    2) покажите структуру массива (точнее прикрепите к теме его целиком)
    3) покажите конечный результат который вы хотите получить, или опишите словами алгоритм при котором должен быть достигнут желаемый результат.
     
  3. smitt

    smitt Старожил

    С нами с:
    3 янв 2012
    Сообщения:
    3.166
    Симпатии:
    65
    А тебя не смущает что при любом if ты в файл пишешь одно и тоже? o_O
    fwrite($f,$key.' = '.$value2.';'."\r\n");}
     
  4. Valick

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

    С нами с:
    12 авг 2018
    Сообщения:
    1.911
    Симпатии:
    328
    @smitt, там значения $value2 разные, не все попадают в результирующий файл
     
  5. Sail

    Sail Старожил

    С нами с:
    1 ноя 2016
    Сообщения:
    1.591
    Симпатии:
    360
    Собственно, такой простой вставки в начало файла нет. Так как запись, собственно говоря, идет в "файловый поток"...
    Но можно предварительно сформировать/отсортировать массив и в правильной порядке записывать в файл.
     
  6. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.748
    Симпатии:
    1.321
    Адрес:
    Лень
    В двух местах код был дерьмом
    PHP:
    1. foreach ( $data AS $key => $value )
    2. {  
    3.     foreach ( $value AS $key2 => $value2 )
    4.     {
    5.         if ( $key2 === 'status' && in_array ( $value2, [ 'available', 'regthroughothers', 'regthroughus', 'unknown' ], 1 ) )
    6.         {                                                      
    7.             file_put_contents ( ПУТЬ_К_ФАЙЛУ, "{$key} = {$value2};" . PHP_EOL, FILE_APPEND );
    8.         }
    9.     }
    10. }