在PHP中重置foreach循环以进行多次运行

use*_*794 1 php foreach

我有一个包含9个下拉框的表单,需要使用相同的查询填充.我使用foreach循环列出选项,但将代码复制到scond下拉列表不会产生任何选项.我想这是因为结果已经循环所以什么都没发现.

如何为每个循环重置准备好的结果?或者也许有一种更有效的方法来实现这一点,有人可能知道.

这是查询:

$qry2 = "SELECT ride_id, name FROM tpf_rides WHERE park_id = $park_id ORDER BY name ASC";
        $res2 = $pdo->query($qry2);
Run Code Online (Sandbox Code Playgroud)

这是我正在使用的循环:

<select name="ride_id_image">
    <option value="">Select Ride</option>

<?php   foreach ($res2 as $row2) {
    printf('<option value="%s">%s</option>' . PHP_EOL, $row2['ride_id'], $row2['name'] );
 } ?>
    </select>
Run Code Online (Sandbox Code Playgroud)

谢谢

and*_*wsi 5

有一种更有效的方法可以做到这一点.不是多次遍历结果集,而是将其写入字符串一次,然后您可以根据需要重复使用:

<?php   

$options = "";

foreach ($res2 as $row2) {
    $options .= sprintf('<option value="%s">%s</option>' . PHP_EOL, $row2['ride_id'], $row2['name'] );
 } 

 ?>
Run Code Online (Sandbox Code Playgroud)

现在,只要你想打印选项,你就可以回显你的字符串:

<select name="ride_id_image">
    <option value="">Select Ride</option>
    <?php echo $options ?>    
    </select>
Run Code Online (Sandbox Code Playgroud)