Потерпи меня, если это неясно; У меня проблемы с тем, чтобы полностью обернуть голову вокруг этого (следовательно, поэтому я здесь, чтобы попросить о помощи).
У меня есть массив, который выглядит так:
Array
(
[DimA1] => Array
(
[DimB1] => Array
(
[DimC1] => Array
(
[value1] => 13708
[value2] => 4.5
)
[DimC2] => Array
(
[value1] => 1846
[value2] => 15.8
)
)
[DimB2] => Array
(
[DimC1] => Array
(
[value1] => 18166
[value2] => 6.4
)
)
[DimA2] => Array
(
....... etc
Мне нужно пройти через этот массив, и когда я доберусь до значения1 и значения2, мне нужно будет выполнить некоторые вставки в базу данных. На данный момент мне нужно знать, через какие массивы я сейчас вхожу, и использовать их имя ключа как часть моих вставок в базу данных.
Мое текущее решение выглядит так:
public function recurseCounts($array,$dims = array()) {
foreach ($array as $key => $value) {
$dims[] = $key;
if (isset($value['value1']) || isset($value['value2'])) {
print_r($value); // For debugging...
print_r($dims); // For debugging...
// DB Logic to insert dimensions in to DB here
// DB Logic to insert values in to DB here
array_pop($dims);
} else {
$this->recurseCounts($value,$dims);
}
}
}
Это работает до тех пор, пока цикл не достигнет DimB2, вот тогда все начинает становиться странным.
Есть идеи, как это решить?