Heim >Backend-Entwicklung >PHP-Tutorial >两个foreach如何执行

两个foreach如何执行

WBOY
WBOYOriginal
2016-06-13 10:23:081170Durchsuche

两个foreach怎么执行?
帮我看这个代码是怎么执行的,结果是这样.
$ar=array(
array('id'=>4,'pid'=>1),
array('id'=>5,'pid'=>1),
array('id'=>6,'pid'=>1),
array('id'=>7,'pid'=>3),
array('id'=>8,'pid'=>4),
array('id'=>9,'pid'=>4),
array('id'=>10,'pid'=>5),
array('id'=>11,'pid'=>6),
array('id'=>12,'pid'=>6),
array('id'=>13,'pid'=>6),
array('id'=>14,'pid'=>8),
array('id'=>20,'pid'=>14),
array('id'=>30,'pid'=>20),
);
$aiya=array();
 foreach($ar as $k=>$v){
if($v['pid']==1){
echo "1下面:".$v['id']."
";
$aiya[]=$v['id'];
}
foreach($aiya as $k1=>$v1){
if($v['pid']==$v1){
$aiya[]=$v['id'];
}
}
}
echo "
";
var_dump($aiya);
?>

你们猜猜这段代码执行结果是什么,为什么

------解决方案--------------------
为什么要猜,跑一下.
------解决方案--------------------
LZ表示没看懂伱那个结果是干吗的!! 但
如果伱要是想遍历数组$ar,下面代码可以做到:

PHP code
foreach($ar as $arr){     foreach($arr as $key=>$val){         echo $key."=>".$val."  ";     }     echo "<br>";}<br><font color="#e78608">------解决方案--------------------</font><br>表示没有懂lz想要干什么 !<br><font color="#e78608">------解决方案--------------------</font><br>不知道你什么意思? 这个代码有何用?<br>遍历循环,然后填充数组再对比?<br><font color="#e78608">------解决方案--------------------</font><br>为什么……你第二个数组是在第一次遍历的基础上两次变动的,当然有为什么了……<br><font color="#e78608">------解决方案--------------------</font><br>是不好理解,你还是使用for ()语句<br><font color="#e78608">------解决方案--------------------</font><br>函数的意思就是先将$ar [pid=1]的值存储到数组$aiya中,然后每取出依次PID值都要和数组$aiya的没一个元素进行比较,如果有与PID值相同的元素,那么就将数组$AR的ID值存储到$aiya中,应用到实际上就是输出数组$ar的字段值到数组中,但完全没这样操作的必要吧.楼主可以加跟踪代码到程序中,然后看看效果,只有PID =3的那个ID值没有存储到数组$aiya中.<br>
PHP code
<?php $ar=array(array('id'=>4,'pid'=>1),array('id'=>5,'pid'=>1),array('id'=>6,'pid'=>1),array('id'=>7,'pid'=>3),array('id'=>8,'pid'=>4),array('id'=>9,'pid'=>4),array('id'=>10,'pid'=>5),array('id'=>11,'pid'=>6),array('id'=>12,'pid'=>6),array('id'=>13,'pid'=>6),array('id'=>14,'pid'=>8),array('id'=>20,'pid'=>14),array('id'=>30,'pid'=>20),);$aiya=array(); foreach($ar as $k=>$v){if($v['pid']==1){echo "1下面:".$v['id']."<br>";$aiya[]=$v['id'];}echo "测试一次数组遍力 的结果<br>"  ;//增加的检测代码跟踪输出数据.print_r($aiya);//增加的检测代码跟踪输出数据.echo '<br>';//增加的检测代码跟踪输出数据.foreach($aiya as $k1=>$v1){if($v['pid']==$v1){$aiya[]=$v['id']; }}}echo "<br>";var_dump($aiya);?><br><font color="#e78608">------解决方案--------------------</font><br>基本功啊基本功!<br><font color="#e78608">------解决方案--------------------</font><br>把程序改成如下就能完全看到效果了<br>
PHP code
 <?php $ar=array(array('id'=>4,'pid'=>1),array('id'=>5,'pid'=>1),array('id'=>6,'pid'=>1),array('id'=>7,'pid'=>3),array('id'=>8,'pid'=>4),array('id'=>9,'pid'=>4),array('id'=>10,'pid'=>5),array('id'=>11,'pid'=>6),array('id'=>12,'pid'=>6),array('id'=>13,'pid'=>6),array('id'=>14,'pid'=>8),array('id'=>20,'pid'=>14),array('id'=>30,'pid'=>20),);$aiya=array(); foreach($ar as $k=>$v){if($v['pid']==1){echo "1下面将存储数据:".$v['id']."<br>";$aiya[]=$v['id'];}foreach($aiya as $k1=>$v1){if($v['pid']==$v1){$aiya[]=$v['id']; echo "1下面将存储数据:".$v['id']."<br>";}}echo "测试第一次遍力 的结果<br>"  ;print_r($aiya);echo '<br>';}echo "你的最终$aiya 的数据结构为:<br>";var_dump($aiya);?><div class="clear">
                 
              
              
        
            </div>
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn