Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/261.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_Loops - Fatal编程技术网

Php 在多个位置打印循环中的数据,而无需再次运行循环

Php 在多个位置打印循环中的数据,而无需再次运行循环,php,loops,Php,Loops,让我有一个这样的数组 $age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43"); <?php $age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43"); ?> <div id="3"> <!-----result of foreach loop----> </div> <di

让我有一个这样的数组

$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");

<?php 
 $age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");
?>
    <div id="3">
          <!-----result of foreach loop---->
    </div>
    <div id="1">
         <?php 
            foreach ($age as $key => $value) {?>
                    <p><?php echo $value;?></p>
            <?php
            }
         ?>
    </div>
    <div id="2">
        <!-----result of foreach loop---->
    </div>
<?php
?>

我想在和中打印相同的结果,而不通过数组中的循环,我只想使用循环一次

您可以尝试将它们全部放在一个变量中,然后将它们回显出来。 类似这样的事情-

<?php 
 $age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");
 $display_str = "";
 foreach ($age as $key => $value) {
    $display_str .= $value;
 }
?>
<div id="1">
  <?php echo $display_str;?>     
</div>
<div id="2">
    <!-----result of foreach loop---->
    <?php echo $display_str;?>
</div>

只需将html存储在div部分之前并打印三次:

<?php 
    $age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");

    $htmlString = '';
    foreach ($age as $key => $value) 
    {
        $htmlString .= '<p>'.$value.'</p>';
    }
?>

<div id="3">
   <?=$htmlString?>
</div>
<div id="1">
   <?=$htmlString?>
</div>
<div id="2">
   <?=$htmlString?>
</div>  

您可以这样做:

<div id="1">


 <?php 
        $html="";
        foreach ($age as $key => $value) {


                $html .= "<p>".$value."</p>";
                }
               echo $html;
                ?>

</div>
<div id="2">
    <?php echo $html; ?>
</div>

只需将结果值存储在正在使用的数组中的任意位置,如下所示:

<?php 
$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");
?>
    <div id="3">
          <!-----result of foreach loop---->
    </div>
    <div id="1">
         <?php 
            $res = array();
            foreach ($age as $key => $value) {?>
                    <p><?php 
                    $res[] = $value;
                    echo $value;?></p>
            <?php
            }
         ?>
    </div>
    <div id="2">
        <!-----result of foreach loop---->
        <?php
            echo '<pre>';
            print_r($res); ?>
        <p><?php 
            echo $res[0];
            echo $res[1];
            echo $res[2];
        ?></p>
    </div>
<?php
?>

您也可以使用以下方法进行操作:


为什么?通过不使用多个循环,您试图实现什么?您可以将循环连接到一个变量中,并在多个位置回显它。如果我有一个包含数百万项的数组,那么我的脚本肯定会很慢。您的浏览器会更差;为什么在循环中回显$html?
<?php 
$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");
?>
    <div id="3">
          <!-----result of foreach loop---->
    </div>
    <div id="1">
         <?php 
            $res = array();
            foreach ($age as $key => $value) {?>
                    <p><?php 
                    $res[] = $value;
                    echo $value;?></p>
            <?php
            }
         ?>
    </div>
    <div id="2">
        <!-----result of foreach loop---->
        <?php
            echo '<pre>';
            print_r($res); ?>
        <p><?php 
            echo $res[0];
            echo $res[1];
            echo $res[2];
        ?></p>
    </div>
<?php
?>