Php 如何在关联数组中循环
数组如下所示,我使用 0:a 0:subA 1:subB 0:亚基 1:子分组 0:deepA 1:deepB 不幸的是,我没有得到任何回应,任何能帮助我的人都会感激不尽Php 如何在关联数组中循环,php,arrays,loops,associative,Php,Arrays,Loops,Associative,数组如下所示,我使用 0:a 0:subA 1:subB 0:亚基 1:子分组 0:deepA 1:deepB 不幸的是,我没有得到任何回应,任何能帮助我的人都会感激不尽 $myArray = Array ( [Header] => Array ( [@attributes] => Array ( [ShouldRec
$myArray = Array
(
[Header] => Array
(
[@attributes] => Array
(
[ShouldRecordPerformanceTime] => False
[Timestamp] => 2014-06-11 16:33:20:04501
[ReferenceID] => 8fc07483-94ff-4a70-a8fa-d54292598592
[RecentlyTime] => 2014-06-11 16:33:08
[AccessCount] => 30
[CurrentCount] => 2
[ResetTime] => 2014-06-11 16:34:08
[ResultCode] => Success
)
)
[HotelResponse] => Array
(
[OTA_HotelSearchRS] => Array
(
[@attributes] => Array
(
[TimeStamp] => 2014-06-11T16:33:19.8857903+08:00
[Version] => 1.0
[PrimaryLangID] => zh
)
[Properties] => Array
(
[Property] => Array
(
[@attributes] => Array
(
[BrandCode] => 110
[HotelCode] => 443707
[HotelCityCode] => 2
[HotelName] => rujiakuaijie
[AreaID] => 112
[HotelId] => 443707
)
[VendorMessages] => Array
(
)
[Position] => Array
(
[@attributes] => Array
(
[Latitude] => 31.235452
[Longitude] => 121.447776
[PositionTypeCode] => 502
)
)
[Address] => Array
(
[AddressLine] => changpin road
[CityName] => SHANGHAI
[PostalCode] => 200040
)
[Award] => Array
(
[0] => Array
(
[@attributes] => Array
(
[Provider] => HotelStarRate
[Rating] => 2
)
)
[1] => Array
(
[@attributes] => Array
(
[Provider] => CtripStarRate
[Rating] => 2
)
)
[2] => Array
(
[@attributes] => Array
(
[Provider] => CtripRecommendRate
[Rating] => 1.5
)
)
[3] => Array
(
[@attributes] => Array
(
[Provider] => CtripCommRate
[Rating] => 0
)
)
)
[RelativePosition] => Array
(
[0] => Array
(
[@attributes] => Array
(
[Distance] => 1.58
[UnitOfMeasureCode] => 2
[Name] => changshou
)
)
[1] => Array
(
[@attributes] => Array
(
[Distance] => 44.729
[UnitOfMeasureCode] => 2
[Name] => pudong
)
)
[2] => Array
(
[@attributes] => Array
(
[Distance] => 12.88
[UnitOfMeasureCode] => 2
[Name] => hongqiao
)
)
[3] => Array
(
[@attributes] => Array
(
[Distance] => 11.208
[UnitOfMeasureCode] => 2
[Name] => shanghai
)
)
[4] => Array
(
[@attributes] => Array
(
[Distance] => 15.571
[UnitOfMeasureCode] => 2
[Name] => trainstation
)
)
[5] => Array
(
[@attributes] => Array
(
[Distance] => 4.167
[UnitOfMeasureCode] => 2
[Name] => central
)
)
[6] => Array
(
[@attributes] => Array
(
[Distance] => 3.836
[UnitOfMeasureCode] => 2
[Name] => museum
)
)
)
[TPA_Extensions] => Array
(
[Zone] => Array
(
[ZoneType] => Array
(
[@attributes] => Array
(
[ZoneID] => 981
[ZoneName] => commercial
)
)
)
)
)
)
[Success] => Array
(
)
)
)
)
函数DFS($array){
foreach($k=>$v的数组){
if(is_数组($v)){
$this->DFS($v);
}
else回显“
”。$k.-”$v;
}
}
这么大的阵列,你是如何制作的?你为什么要用这样的东西呢?你试过上面的数组内容吗?所以你基本上是复制粘贴了一些代码,而不用费心阅读手册的其余部分,手册解释了这些代码是如何工作的?来吧不要偷懒,学习什么是递归迭代器,它是做什么的,以及它是如何做的。以var\u export
(而不是var\u dump
)格式重新发布数组会更有帮助,这样我们就可以测试我们的答案了。@Michael,为什么你的数组不工作?它有一些问题!
$iterator = new RecursiveArrayIterator($myArray);
iterator_apply($iterator, 'traverseStructure', array($iterator));
function traverseStructure($iterator) {
while ( $iterator -> valid() ) {
if ( $iterator -> hasChildren() ) {
traverseStructure($iterator -> getChildren());
}
else {
echo $iterator -> key() . ' : ' . $iterator -> current() .PHP_EOL;
}
$iterator -> next();
}
}
?>
function DFS($array) {
foreach ($array as $k => $v) {
if (is_array($v)) {
$this->DFS($v);
}
else echo '<br />'. $k. ' - '. $v;
}
}