Присвоение значения переменным в зависимости от условия. Выводится только последнее значение

В общем есть файл change_id.txt. В нём 4 строки (будет больше).

 111111
"111111-fh8igjgi-jrurjrjg-111111"
222222
"222222-fh8igjgi-jrurjrjg-222222"

Мне надо на PHP считать файл, и в зависимости от длинны строки присвоить значение строки той или иной переменной. И эти значения использовать в паре. На данный момент просто вывести.

Код который работает без условия:

$lines = file('change_id.txt');

    $cLines = count($lines);
        
for ($i_id = 0; $i_id < $cLines; $i_id++)
        
        echo $lines[$i_id];

Выводит все 4 строки. Всё как надо. Но если добавить условие, то переменные перезаписываются и выводятся только последние 2 строки. Почему так не пойму. Пример кода с условием:

    $lines = file('change_id.txt');
    $cLines = count($lines);
        
for ($i_id = 0; $i_id < $cLines; $i_id++)
        
        // echo $lines[$i_id];

        if (iconv_strlen($lines[$i_id]) < 10) {
            $id_good = $lines[$i_id];
        }
        else {
            $guid = $lines[$i_id];
        }

        echo $guid;
        echo $id_good;

Должно ведь выводится каждую итерацию или что не так?


Ответы (1 шт):

Автор решения: teran

в целом ошибка вашего кода в том, что тело цикла не заключено в фигурные скобки, поэтому выполняется только вложенные if.

Если вам нужно попарно обработать строки файла, то читайте его, бейте на куски по 2, и с ними работайте

 $lines = file("...");
 $pairs = array_chunk($lines,2);
 foreach($pairs as [$key, $value]){
     echo "$key: $value";
 }
→ Ссылка