Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP在一个页面上多次执行数组_Php_Arrays - Fatal编程技术网

PHP在一个页面上多次执行数组

PHP在一个页面上多次执行数组,php,arrays,Php,Arrays,我想在一个页面上运行两个独立的foreach循环,但只编写一次SQL。例如,请参见下面的代码,只有id为第一次运行的ul,第二个ul为空 <?php $mylist = 'SELECT * FROM myTable'; $showlist = $pdo->prepare($mylist); $showlist->execute(); ?> <ul id="first">

我想在一个页面上运行两个独立的foreach循环,但只编写一次SQL。例如,请参见下面的代码,只有id为第一次运行的ul,第二个ul为空

    <?php
        $mylist = 'SELECT * FROM myTable';
        $showlist = $pdo->prepare($mylist);
        $showlist->execute();
    ?>  
    <ul id="first">
        <?php foreach ($showlist as $rowid):;?>
            <li><?php echo $rowid['id'] ?></li>
        <?php endforeach; ?>  
    </ul>
    <ul id="second">
        <?php foreach ($showlist as $rowname):;?>
            <li><?php echo $rowname['name'] ?></li>
        <?php endforeach; ?>  
    </ul>

我以为重命名as会允许我再次使用它,但事实似乎并非如此?这里最好的方法是什么?

试试:

<?php
$mylist = 'SELECT * FROM myTable';
$showlist = $pdo->prepare($mylist);
$showlist->execute();
$result = $showlist->fetchAll();

foreach ($result as $rowid) {
    // do stuff
}

foreach ($result as $rowname) {
    // do stuff
}
试试:


您需要先将元素堆叠在一个额外的数组中:

$mylist = 'SELECT * FROM myTable';
$showlist = $pdo->prepare($mylist);
$showlist->execute();

$rows = array();

foreach($showlist as $row) {
    array_push($rows, $row);
}

echo "<ul>";
foreach($rows as $row) {
    echo "<li>".$row['id']."</li>";
}
echo "</ul><ul>";
foreach($rows as $row) {
    echo "<li>".$row['name']."</li>";
}
echo "</ul>";
$mylist='SELECT*FROM myTable';
$showlist=$pdo->prepare($mylist);
$showlist->execute();
$rows=array();
foreach($showlist作为$row){
数组\u push($rows,$row);
}
回声“
    ”; foreach($行作为$行){ 回显“
  • ”$row['id']。“
  • ”; } 回声“
    ”; foreach($行作为$行){ 回显“
  • ”$row['name']。“
  • ”; } 回声“
”;
您需要先将元素堆叠在一个额外的数组中:

$mylist = 'SELECT * FROM myTable';
$showlist = $pdo->prepare($mylist);
$showlist->execute();

$rows = array();

foreach($showlist as $row) {
    array_push($rows, $row);
}

echo "<ul>";
foreach($rows as $row) {
    echo "<li>".$row['id']."</li>";
}
echo "</ul><ul>";
foreach($rows as $row) {
    echo "<li>".$row['name']."</li>";
}
echo "</ul>";
$mylist='SELECT*FROM myTable';
$showlist=$pdo->prepare($mylist);
$showlist->execute();
$rows=array();
foreach($showlist作为$row){
数组\u push($rows,$row);
}
回声“
    ”; foreach($行作为$行){ 回显“
  • ”$row['id']。“
  • ”; } 回声“
    ”; foreach($行作为$行){ 回显“
  • ”$row['name']。“
  • ”; } 回声“
”;
可能重复@AlmaDoMundo fair call,因为它们是重复的。我认为这里的两个答案比另一个网站要好,不过就如何让它工作而言?可能是@AlmaDoMundo fair call的重复。我认为这里的两个答案比另一个网站更好,不过就如何让它工作而言?