在循环中从数组中获取下一个

时间:2011-02-01 20:39:29

标签: php arrays

我很困难,如果你有2分钟,请有人帮忙。

我有一个foreach,我从会话中获取值

foreach ($result as $i => $item ) {

         $values_array  = explode("\n",$get_widths); // outputs Array ( [0] => 120 [1] => 180) 
         // here I need to echo the value from the array but only ONCE
}

问题是这是由2个或更多项使用,每次重复数组输出,所以如果我得到2个项目 数组([0] => 120 [1] => 180)数组([0] => 120 [1] => 180)或 120 120 而是

120 180

实际代码见这里

<?php
foreach ($list as $i => &$item){
    $i=0;
    $is_group                   = $item_params->get('is_group');    
    $group_widths               = $item_params->get('group_widths');    
    $group_widths_array         = explode("\n",$group_widths);

    if($is_group == 1){

        echo $group_widths_array[$i];
    }



}
?>
请注意,我不能移出foreach。谢谢

2 个答案:

答案 0 :(得分:1)

我只想使用某种标志变量来确定我们是否已经处理过。

$values_array  = explode("\n",$get_widths);
if (!isset($we_have_outputted)) {
   echo '<pre>'. print_r($values_array, true) .'</pre>';
   $we_have_outputted = true;
}

答案 1 :(得分:0)

我完全忽略了这个循环......

您正在迭代一个数组,将密钥分配给$i,将值分配给$item,然后将$i设置为0,每次条件时都回显$group_widths_array[0]已经满足了$item你根本不使用......

那不对,可以吗?

无论如何,在我看来,重复输出的原因是每次都输出$group_widths_array[0]并且$is_group在每次迭代时都相同。