2013-10-29 45 views
0

我有一個完美的關聯數組。 之後我遇到的問題。在多維數組循環中使用foreach

數組翻轉後,$組合是這樣的:

$combo = array(0 => '2,4', 1 => '4,15', 2 => '2,15'); 

我正在尋找的是被賦予給每個組合的每個時間:2,4將有1.8,4時, 15會有1.1的時間,等等......

我得到的是在每個循環中重複完全相同的時間,我也獲得了每次重複的第一名贏家,即使它是不包括在組合中。

$position = array('1', '2', '3', '4'); 
$jersey = array('2', '4', '15', '20'); 
$AssocArr = array_combine($position, $jersey); 
$combo = array('1,2', '2,3', '1,3'); 
$time = array('1.8', '1.1', '1.8'); 


foreach ($headers as $header) { 
    foreach ($time as $idx=>$ttext) { 
    if($header[1] === 'Multiples') { 
    foreach ($combo as &$value) { 
     $values = explode(',', $value, 2); 
     $comboGroups = array_intersect_key($AssocArr, array_flip($values)); 
     $value = join(',', $comboGroups); 
    } 

代碼一半從這裏失敗:

$TimeEntities = false; 
    foreach ($combo as $selGrp) { 
     $xid = $selGrp; 
     $sel = explode(',', $selGrp); 
     foreach ($sel as $set=>$sel) { 
      $set = 1; 
      $sel = trim($sel); 
      if (!empty($sel)){ 
       if (is_numeric($sel)) 
       $TimeEntities[$sel][$sel.';'.$set] = array('number' => $sel, 'order'=>$set); 
      else 
       $TimeEntities[$sel][$sel.';'.$set] = array('name' => $sel, 'order'=>$set); 
      $set++; 
      }  
     } 
     $race['tracks'][$trackxid]['times']['final;' .$xid] = array('type'=>'final', $time'=>$ttext, 'combinations'=>$TimeEntities);  
     } 
    } 
    } 
} 

我想結果應該是這樣的:

-<time xid="Multiples|final;2,4" type="final" time="1.8"> 
    -<combination xid="Multiples|final;2,4|2"> 
     <comboParticipant xid="Multiples|final;2,4|2|2;1" order="1" number="2"/> 
    </combination> 
    -<combination xid="Multiples|final;2,4|4"> 
     <comboParticipant xid="Multiples|final;2,4|4|4;1" order="1" number="4"/> 
    </combination> 
</time> 
-<time xid="Multiples|final;1,15" type="final" time="1.1"> 
    -<combination xid="Multiples|final;1,15|1"> 
     <comboParticipant xid="Multiples|final;1,15|1|1;1" order="1" number="1"/> 
    </combination> 
    -<combination xid="Multiples|final;1,15|15"> 
     <comboParticipant xid="Multiples|final;1,15|15|15;1" order="1" number="15"/> 
    </combination> 
</time> 
-<time xid="Multiples|final;2,15" type="final" time="1.8"> 
    -<combination xid="Multiples|final;2,15|2"> 
     <comboParticipant xid="Multiples|final;2,15|2|2;1" order="1" number="2"/> 
    </combination> 
    -<combination xid="Multiples|final;2,4|4"> 
     <comboParticipant xid="Multiples|final;2,15|15|15;1" order="1" number="15"/> 
    </combination> 
</time> 

我知道這是一個很大的代碼搞清楚。我確實希望有人能幫忙。我非常感激。謝謝! :)

回答

0

我最終做了三次,因爲我知道每個多個將是相同的組合。所以最後很容易。 :)