微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

PHP中的foreach和for循环

如何解决PHP中的foreach和for循环

| 正在PHP循环上工作,我发现自己在尝试结合foreach和for循环时需要写一个嵌套循环bur,它会产生意外结果 这是我的代码
       foreach ($district_ward as $key => $value) {
           $ward_ids = array_keys($district_ward[$key]);
           echo $key;
           for ($x = 0; $x < count($ward_ids)-1; $x++) {
               $district_village[$key]= array_merge($value[$ward_ids[$x]],$value[$ward_ids[$x+1]]);
           }               
        }
这给我这个
347
但是当我在for循环中打印$ key的值时
        foreach ($district_ward as $key => $value) {
           $ward_ids = array_keys($district_ward[$key]);
           for ($x = 0; $x < count($ward_ids)-1; $x++) {
   echo $key;
               $district_village[$key]= array_merge($value[$ward_ids[$x]],$value[$ward_ids[$x+1]]);
           }
        }
我明白了
3
    

解决方法

        我只是猜测您的第二个和第三个数组只有一个条目长。循环的条件指定为“ 4”。如果您的数组只有一个条目,则1-1将使其循环0次。换句话说,您的内部循环根本不会执行。     ,        您是否将此打印到html页面?您的钥匙是3、4和7吗?如果您要回显html页面,它们将显示为347。尝试
echo \"$key<br />\\n\"; 
甚至
echo \"<pre>\".print_r($district_ward).\"</pre>\";
在循环之前查看数组的外观。     ,        
 foreach ($district_ward as $key => $value) {
       $ward_ids = array_keys($district_ward[$key]);
       for ($x = 0; $x < count($ward_ids); $x++) {
           echo $key;
           $district_village[$key]= array_merge($value[$ward_ids[$x]],$value[$ward_ids[$x+1]]);
       }
    }
应该可以解决问题,因为您从0开始直到$ ward_ids的数量 假设您的$ ward_ids有1个条目,那么您将循环0到0,所以根本没有循环, 假设它有102个条目,那么您将循环1-101,自从0开始就剩下102个。     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。