Drupal 6 PHP:Foreach在同一行继续重复操作

时间:2011-07-11 14:49:37

标签: php drupal foreach row repeat

我在Drupal 6中没有一个网站,我正试图在我的.tpl(html)中使用不同的类进行一些打印。

在示例中,我有两个人列在他们自己的行中。它们都有两个具有不同值的数组,称为“位置”和“首选位置”。

我的问题是我做了一个foreach,它打印了跨度,但每次为ame行保持重复跨度(在这里只有两行)。我似乎无法在我的代码中找到错误。请看看,任何帮助,或指向正确方向的手指将不胜感激。

foreach ($vars['view']->result as $key => $row) {
    // preferred positions on pitch             
$outputspanpref = "";           
    foreach ($row->node_data_field_pref_position_field_pref_position_value as $key =>
        $position) {
            $keyclass = 'pref-position-' . $key; 
        $positionclass = strtolower(str_replace(" ","-",$position['value']));
            $outputspanpref .= '<span class="' . $keyclass . ' ' . "pref-position" . 
            '' . $positionclass . '"></span>';      
        $vars['prefposition'] = $outputspanpref;        
    }

    // secondary positions on pitch 

    $outputspan = "";

    foreach ($row->node_data_field_position_field_position_value as $key => 
        $position) {
            $keyclass = 'position-' . $key; 
        $positionclass = strtolower(str_replace(" ","-",$position['value']));
        $outputspan .= '<span class="' . $keyclass . ' ' . $positionclass.'
                </span>';           
        $vars['position'] = $outputspan;        
        }    
    }    
}

2 个答案:

答案 0 :(得分:2)

看起来您在嵌套的$key循环中重用了foreach。尝试对每个后续循环使用$key1,然后$key2等。

foreach ($vars['view']->result as $key1 => $row) { // 1st forloop
foreach ($row->node_data_field_pref_position_field_pref_position_value as $key2 => $position) { // 2nd forloop
foreach ($row->node_data_field_position_field_position_value as $key3 => $position) { // 3rd forloop

答案 1 :(得分:0)

根据您的问题说明。您可能在循环中使用相同的引用并因此纠正它,您必须将每一行分配给它自己的唯一变量。