我没有问题,但我正在寻找任何其他可能更好或更快的解决方案。 我有两个键ALL和ART的数组:
$myData = Array (
[ALL] => Array (
[0] => Array (
[ID_COUNTRY] => 23
[DELIVERY_DAYS] => 23
[AMOUNT] => 23
)
[1] => Array (
[ID_COUNTRY] => 30
[DELIVERY_DAYS] => 30
[AMOUNT] => 30
)
)
[ART] => Array (
[0] => Array (
[ID_COUNTRY] => 10
[DELIVERY_DAYS] => 10
[AMOUNT] => 10
)
[1] => Array (
[ID_COUNTRY] => 2
[DELIVERY_DAYS] => 20
[AMOUNT] => 20
)
)
)
并有2个foreach循环来检查值
<?php
foreach ($myData as $key1=>$key2) {
foreach ($key2 as $key=>$data) {
...
}
}
?>
可以做这样的事情,或者是使用两个foreach循环而没有任何额外库的唯一解决方案。
<?php
foreach($myData as $key1=>$key2=>$value) {
echo $key1; // [ALL] or [ART]
echo $key2; // [ALL][$key2] or [ART][$key2];
}
?>
答案 0 :(得分:3)
如果要循环多维数组,则需要提供代码:
foreach ($myData as $key1=>$key2) {
foreach ($key2 as $key=>$data) {
...
}
}
没有使用最终会做到这一点的事情,没有办法解决它。这里没有速度。如果存在微观优化,你应该忽略它:)
答案 1 :(得分:1)
这是不可能的。但你可以这样做
<?php
foreach ($myData as $key1=>$key2) {
foreach ($key2 as $key=>$data) {
echo $key1;
echo $key2;
}
}
?>
答案 2 :(得分:0)
也许并不完全是你想要的;我仍然想通知你。 可以递归循环遍历多维数组,使用RecursiveArrayIterator
结合RecursiveIteratorIterator
:
$rii = new RecursiveIteratorIterator( new RecursiveArrayIterator( $myData ), RecursiveIteratorIterator::SELF_FIRST );
foreach( $rii as $key => $value )
{
echo $key;
// you can keep track of the current depth with:
$depth = $rii->getDepth();
}