如何在php中停止重复嵌套的foreach循环

时间:2014-07-01 10:44:22

标签: php foreach

我有两个嵌套的foreach循环,现在问题是每次循环执行时值都在重复。我希望foreach循环中有一个时间值。

我有两个表一个用于产品,另一个用于其他产品,其中product id是关系字段。现在我想打印所有产品的复选框形式和编辑页面我想检查用户添加时检查的那些复选框

<?php
$arr1 = array('aqeel', 'naseem', 'umer');
$arr2 = array('farooq', 'tahir', 'zaheer');

foreach($arr1 as $one)
{
    echo $one.'<br />';
    foreach($arr2 as $two)
    {
        echo ($two).'<br />';
    }
}
?>

在上面的代码中,每次$one值添加$two值时,我都希望两个循环执行其值一次,不重复值

以下是我真正的示例代码,其中我嵌套了foreach重复问题

<label for="other_product">Other Product</label>
        <?php 
            $allproducts = $this->product_model->allProducts();
            if($allproducts)
            {
            foreach($allproducts as $allproduct)
            {
                $otherprod_ids = $this->product_model->otherprodids();
                foreach($otherprod_ids as $otherprod_id)
                {
        ?>
        <input type="checkbox" name="otherprod_id[]" value="<?=$allproduct->id?>" style="margin-bottom:10px;" /><span style="font-weight:bold; margin:0px 0px 5px 10px;"><?=$allproduct->product_name?></span><br />
        <?php } } }  ?>

下面给出了嵌套重复foreach的输出

<label for="other_product">Other Product</label>

横幅
横幅
横幅
横幅
横幅
文件夹
文件夹
文件夹
文件夹
文件夹
信纸
信纸
信纸
信纸
信纸
书签
书签
书签
书签
书签
乙烯基横幅
乙烯基横幅
乙烯基横幅
乙烯基横幅
乙烯基横幅
小册子
小册子
小册子
小册子
小册子
小册子
小册子
小册子
小册子
小册子
名片
名片
名片
名片
名片
目录
目录
目录
目录
目录
传单
传单
传单
传单
传单
贺卡
贺卡
贺卡
贺卡
贺卡
标签
标签
标签
标签
标签
海报
海报
海报
海报
海报
贴纸
贴纸
贴纸
贴纸
贴纸
无碳形式
无碳形式
无碳形式
无碳形式
无碳形式
包装盒
包装盒
包装盒
包装盒
包装盒
信封
信封
信封
信封
信封
手册
手册
手册
手册
手册
简讯
简讯
简讯
简讯
简讯
机架卡
机架卡
机架卡
机架卡
机架卡
标签
标签
标签
标签
标签
门票
门票
门票
门票
门票
攀附
攀附
攀附
攀附
攀附
CD夹克
CD夹克
CD夹克
CD夹克
CD夹克

1 个答案:

答案 0 :(得分:1)

如果您的预期输出是:

aqueel
farooq
naseem
tahir
amer
zaheer

您的代码如下:

for($i = 0; $i < max(count($arr1),count($arr2)); $i++) {
    if ($i < sizeof($arr1))
        echo $arr1[$i]."<br />";
    if ($i < sizeof($arr2))
        echo $arr2[$i]."<br />";
}