Присвоение значения переменным в зависимости от условия. Выводится только последнее значение
В общем есть файл 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 шт):
в целом ошибка вашего кода в том, что тело цикла не заключено в фигурные скобки, поэтому выполняется только вложенные if.
Если вам нужно попарно обработать строки файла, то читайте его, бейте на куски по 2, и с ними работайте
$lines = file("...");
$pairs = array_chunk($lines,2);
foreach($pairs as [$key, $value]){
echo "$key: $value";
}