#php #html #foreach

#php #HTML #foreach

Вопрос:

Просто говоря об изучении PHP, я хотел бы знать, могу ли я каким-либо образом объявить значение более 1 $ в цикле foreach? Я пытаюсь отобразить мои 8 различных типов массивов, которые я объявил ($ line0 — $line8). Прошу прощения, если мои коды немного запутаны. Я все еще новичок в PHP.

PHP-код

 <?php
    
$handle = @fopen('listings.txt', "r");
$row = 0;
$count = 0;
$line0 = [];
$line1 = [];
$line2 = [];
$line3 = [];
$line4 = [];
$line5 = [];
$line6 = [];
$line7 = [];
$line8 = [];
    
if ($handle) { 
   while (!feof($handle)) { 
       $store = fgets($handle, 4096); 
       if ($row == 9){
        $row = 0;
        $count  ;
    }
    if ($row == 0) 
    {
        $line0[] = strval($store);
    }
    else if($row == 1) {
$line1[] = strval($store);}
    else if($row == 2) {
$line2[] = strval($store);}
    else if($row == 3) {
$line3[] = strval($store);}
    else if($row == 4) {
$line4[] = strval($store);}
    
    $row  ;
   }
    ?>

    <table>     
        <tr>
        <?php
        foreach($line2 as $value1)amp;amp;(line3 as $value2){

                echo "<td><b>Product ID: $value1</b>"
                echo "<td><b>Selection ID: $value2</b>

                </td>";
                echo '</tr>';
            }
        ?>
    </table>
 

listings.txt

 Cedric
93482812
cedric@hotmail.com
Guitar
---------------------------------------------
Wendy
98238432
wendy@hotmail.com
Guitar
---------------------------------------------
 

Ответ №1:

Нет, вы не можете этого сделать, но есть кое-что еще, что вы можете использовать. Все ваши массивы имеют ключи имен, и вы можете получить ключ с помощью foreach следующим образом:

 foreach ($line1 as $key => $value1) {
    $value2 = $line2[$key];
    echo "<tr>";
    echo "<td><b>Product ID: $value1</b></td>";
    echo "<td><b>Selection ID: $value2</b></td>";
    echo '</tr>';
}
 

Это очень близко к тому, чего вы хотите.

Комментарии:

1.при запуске возникает ошибка синтаксического анализа — ibb.co/6B6hh3T ibb.co/DkfDpVs

2. @Kinja Да, забыл точку с запятой. Неаккуратно. 😉