2015-04-07 91 views
0

我有一個從Web服務調用返回給我的數組。該陣列看起來象下面這樣:多維數組:僅當來自不同陣列的相同密鑰具有相同值時才顯示數據

$flights_data = array 
(
    'departure_trip_data' => array 
    (
     0 => array('departure_date'=>'Mar 25, 2015', 'ticket_class'='Y'), 
     1 => array('departure_date'=>'Mar 25, 2015', 'ticket_class'='B'), 
     2 => array('departure_date'=>'Mar 25, 2015', 'ticket_class'='H'), 
    ), 
    'return_trip_data' => array 
    (
     0 => array('departure_date'=>'Mar 28, 2015', 'ticket_class'='Y'), 
     1 => array('departure_date'=>'Mar 28, 2015', 'ticket_class'='B'), 
     2 => array('departure_date'=>'Mar 28, 2015', 'ticket_class'='K'), 
    ) 
); 

而且我這樣處理的:

<?php 
$departure_trips = $flight_data['departure_trip_data']; 
$return_trips = $flight_data['return_trip_data']; 
?> 

<?php for($i = 0; $i < count($departure_trips); $i++): ?> 
<?php 
    $curr_departure_trip = $departure_trips[$i]; 
    $curr_return_trip = $return_trips[$i]; 
?> 

<td>Departure Date : <?php echo $curr_departure_trip['departure_date']; ?></td> 
<td>Return Date : <?php echo $curr_return_trip['departure_date']; ?></td> 
<td>Ticket Class : <?php echo $curr_departure_trip['ticket_class']; ?> </td> 
<!-- long lines of plain HTML code goes here --> 

<?php endfor; ?> 

我的問題是:我怎麼顯示的數據只有那些在ticket_class值在同一案件departure_trip_data陣列和return_trip_data陣列?很感謝任何形式的幫助。

回答

1

好,後更新你的問題我猜你不想將整個HTML塊封裝在if塊中。爲了避免這種情況,只是將其翻過來:

if($curr_departure_trips['ticket_class'] != $curr_return_trips['ticket_class']) 
    continue; 

這樣,你去到下一行如果票證類是不同的。

-1

您可以通過陣列使用嵌套循環中循環,並通過一個比較之一,如果找到一個匹配的過程中它

+0

是的,我可以做到這一點。但這可能會增加處理時間。我已經在代碼中有很多循環,我想限制循環的數量。我想知道如果PHP有任何內置函數來處理這種情況。順便說一句,我沒有倒下你,也不知道是誰做的。謝謝您的幫助。 – NaijaProgrammer

0

好吧,如果我得到這個權利,

for($i = 0; $i < count($departure_trips); $i++) 
{ 
    $curr_departure_trip = $departure_trips[$i]; 
    $curr_return_trip = $return_trips[$i]; 

    if($curr_departure_trips['ticket_class'] == $curr_return_trips['ticket_class']) { 
    echo '<td>Departure Date : '. $curr_departure_trip['departure_date']. '</td>'; 
    echo '<td>Return Date : '. $curr_return_trip['departure_data']. '</td>'; 
    echo '<td>Ticket Class : '. $curr_departure_trip['ticket_class']. '</td>'; 
    } 

} 
+0

我知道這一點。但問題是,我正在使用這種語法:'for($ i = 0; $ i NaijaProgrammer

+0

我不明白,這是什麼問題?使用'echo'? – msfoster

+0

回聲沒有問題,只是我在for循環中有一長串HTML代碼。我更新了我的代碼,以便更清楚地瞭解我正在談論的內容。 – NaijaProgrammer

相關問題