多维数组:仅显示来自不同数组的相同键具有相同值的数据

时间:2015-04-07 08:19:19

标签: php arrays multidimensional-array

我有一个从网络服务电话返回给我的数组。该数组如下所示:

$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值相同的情况下的数据?非常感谢任何帮助。

3 个答案:

答案 0 :(得分:1)

好的,在你的问题更新之后,我想你不想把整个HTML块包装在if-block中。为了避免这种情况,只需将其转过来:

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

这样,如果票证类别不同,则转到下一行。

答案 1 :(得分: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>';
   }

}

答案 2 :(得分:-1)

您可以使用嵌套循环遍历数组并逐个比较,如果找到匹配则处理它