【发布时间】:2013-11-18 21:07:50
【问题描述】:
考虑这样的数组结构
[DVTTISEGA] => Array
(
[attr] => Array
(
[DepartureDateTime] => 2014-03-17T06:15:00
[ArrivalDateTime] => 2014-03-17T10:50:00
[RPH] => 1
[FlightNumber] => 4376
[ResBookDesigCode] => U
[NumberInParty] => 4
[Status] => 36
[E_TicketEligibility] => Eligible
[DepartureDay] => Mon
[Distance] => 6197
[DateChangeNbr] => 0
)
[DepartureAirport] => Array
(
[attr] => Array
(
[LocationCode] => MRS
[CodeContext] => IATA
[Terminal] => MP2
)
)
[ArrivalAirport] => Array
(
[attr] => Array
(
[LocationCode] => DKR
[CodeContext] => IATA
)
)
[OperatingAirline] => Array
(
[value] => ML
[attr] => Array
(
[FlightNumber] => 4376
)
)
[Equipment] => Array
(
[attr] => Array
(
[AirEquipType] => 735
)
)
)
有两个LocationCode。一个带有键 DepartureAirport 的内部父数组和另一个内部 ArrivalAirport。我必须根据父键将LocationCode 存储在单独的变量中。我正在用代码递归遍历数组:
function arrayTraverse($unserializedarray){
foreach ($unserializedarray as $key => $value) {
print "$key {\n";
if(is_array($value)){
arrayTraverse($value);
}
else{
print " $key => $value\n";
}
print "}\n";
}
}
现在在这段代码中,如何根据我提到的不同父键将LocationCode 分配给不同的变量?
【问题讨论】:
-
当你递归时,将
$key作为第二个参数传入。为了使初始调用成为可能,使第二个参数可选,默认为null值。 -
@Jon:我理解你的意思,你能提供代码提示我应该在哪里分配变量在哪个条件检查?