Everything works correctly, but I wonder why it is written for the output in the condition: if (isset($value[1])) ?

 <?php $userf = fopen('users.txt', 'r') or die("Unable to open file!"); $users = fread($userf, filesize('users.txt')); fclose($userf); $list = []; $list = explode("--#@@#--", $users); foreach ($list as $key => $value) { $list[$key] = explode('|', $value); } ?> 

...

 <?php foreach ($list as $value){ echo "<tr>"; if (isset($value[1])) { echo "<td> $value[0]</td><td> $value[1]</td><td><img src=uploads/".$value[2]." height=150 width=200/></td>"; } echo "</tr>"; } ?> 
  • I am new, so if the jambs in question are twisted - Tofiq Şamedov
  • The variable is checked or exists, if there is a row of the table, if there is no variable, then nothing is output to the table. If this check were not available then there would be empty lines in the table. - Dmitriy Kondratiuk
  • aa, that is, 1 is in the sense of true ?? - Tofiq Şamedov
  • Oh my God. Read about arrays - ArchDemon
  • no 1 is the second element of the $list array. Read what arrays and cycles are in particular foreach - Dmitriy Kondratiuk

1 answer 1

For example, the $list array for you would look something like Array ( [0] => Array ( [0] => 1 [1] => Имя 1 [2] => адрес изображения 1) [1] => Array ( [0] => 2 [1] => Имя 2 [2] => адрес изображения 2 ) [2] => Array ( [0] => 3 [1] => Имя 2 [2] => адрес изображения 3 ) )

 foreach ($list as $value){ //проходим в цикле массив $list. То есть каждый элемент массива по очереди помещаем в переменную $value, таким образом у вас сначала в переменную попадет строка `Array ( [0] => 1 [1] => Имя 1 [2] => адрес изображения 1)` потом `Array ( [0] => 2 [1] => Имя 2 [2] => адрес изображения 2 )` и так далее. echo "<tr>"; // выводим тег <tr> if (isset($value[1])) { // Проверяется или существует переменная (точнее есть ли в переменной $value которая имеет некий массив данных запись с индексом указанным в "[]" в нашем случае это "1" в массиве это "[1] => Имя 1" в переменной "$value[1]" будет "Имя 1"), если существует то выводится строка таблицы, если не существует переменной (точнее записи под индексом указанным в "[]" в нашем случае это "1" в нашем примере вместо "Имя 1" ничего не будет записано) то в таблицу ничего не выводится. Если не было бы этой проверки то в таблице были бы пустые строки. echo "<td> $value[0]</td><td> $value[1]</td><td><img src=uploads/".$value[2]." height=150 width=200/></td>"; //Выводим столбцы таблицы в которые заносим значение с массива $value[0] то есть элемент масива "[0] => 1" в таблице будет "1", $value[1] то есть элемент масива "[1] => Имя 1" в таблице будет "Имя 1" и $value[2] то есть элемент масива "[2] => адрес изображения 1" в таблице будет "адрес изображения 1". } echo "</tr>"; // выводим тег </tr> }