Drupal6PHP:Foreach在同一行上不断重复操作

Drupal6PHP:Foreach在同一行上不断重复操作,php,drupal,foreach,row,repeat,Php,Drupal,Foreach,Row,Repeat,我已经在Drupal6中创建了一个站点,并且正在尝试在my.tpl(html)中打印不同的类 在这个例子中,我在他们自己的行中列出了两个人。它们都有两个具有不同值的数组,称为“位置”和“首选位置” 我的问题是,我制作了一个foreach,它打印跨距,但每次为ame行重复跨距(这里只有两行)。我似乎在代码中找不到错误。请看一看,任何帮助,或手指指向正确的方向将不胜感激 foreach ($vars['view']->result as $key => $row) { // pr

我已经在Drupal6中创建了一个站点,并且正在尝试在my.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;        
        }    
    }    
}
foreach($vars['view']->结果为$key=>$row){
//球场上的首选位置
$outputspanpref=“”;
foreach($row->node_data_field_pref_position_field_pref_position_值为$key=>
美元头寸){
$keyclass='pref position-'。$key;
$positionclass=strtolower(str_替换(“,”-“,$position['value']);
$outputspanpref.='';
$vars['prefposition']=$outputspanpref;
}
//球场上的次要位置
$outputspan=“”;
foreach($row->节点\数据\字段\位置\字段\位置\值为$key=>
美元头寸){
$keyclass='position-'。$key;
$positionclass=strtolower(str_替换(“,”-“,$position['value']);

$outputspan.='看起来您正在嵌套的
foreach
循环中使用
$key
。请尝试对每个后续循环使用
$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

根据您的问题描述。很可能您在循环中使用了相同的引用,因此要更正它,您必须将每一行分配给它自己的唯一变量。

如下修复:foreach($vars['view']->result as$row){$outputspanpref=“”;$playerNID=$row->node\u node\u data\u field\u playername\n nid;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.='Left back$vars['prefsposition][$playerNID]=$outputspanpref;}@rootatwc:虽然它可能也在drupal.stackexchange.com上的主题中,但在这里它仍然完全在主题中……甚至更多,因为这个问题似乎根本不是drupal特有的。@rootatwc-这只是一个普通的PHP编程问题,并不是drupal特有的。