2011-07-11 15 views
1

重複動作我已經穿上網站在Drupal 6,我試圖做一些跨不同類別在我.tpl(HTML)進行打印。Drupal的6 PHP:的foreach不斷同一行

在這個例子中我有自己的行列出了兩個人。他們都有兩個不同的值,分別稱爲'職位'和'首選職位'。

我的問題是,我做了一個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;   
     }  
    }  
} 
+0

@rootatwc:雖然它可能是也話題上drupal.stackexchange.com,它仍然是完全的話題在這裏...更多的問題,看來是不Drupal的具體可言。 –

+0

@rootatwc - 這只是一個普通的PHP編程問題,並不是Drupal特有的。 – Kev

回答

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

固定這樣的:\t的foreach($ VARS [ '視圖'] - >結果作爲$行){ \t \t \t \t $ \t outputspanpref = 「」; \t \t $ playerNID = $行向> node_node_data_field_playername_nid; \t的foreach($行向> node_data_field_pref_position_field_pref_position_value爲$密鑰=> $位置){ \t \t \t $ \t keyclass = 'PREF-位置 - '。 $關鍵; \t \t $ positionclass =用strtolower(str_replace函數(」」, 「 - 」,$位置[ '值'])); 。 \t \t \t $ \t outputspanpref = '<「tooltip3跨度類= ' 'PREF-位置 」$ keyclass'「'。' $ positionclass「。」>左背部「; \t \t $ \t瓦爾[ 'prefposition'] [$ playerNID] = $ outputspanpref; \t \t \t} – Nielsiano

0

根據您的問題描述。很可能您在循環中使用了相同的引用,因此要糾正它,您必須將每一行分配給它自己的唯一變量。