これが不明な場合は私に負担をかけてください。私はこの問題の周りに頭を抱えているので(なぜ私はここに助けを求めるのか)困っている。再帰におけるトラッキングの深さ
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
私はこの配列をステップ実行する必要があると私はvalue1とvalue2のことを得るとき、私はいくつかのデータベースの挿入を実行する必要があります。
私はこのようになります配列を持っています。現時点では、私は現在どのアレイを使用しているのかを知り、データベース名の一部としてキー名を使用する必要があります。
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に当たる時点まで動作します:
私の現在のソリューションは、このようになります。
これを解決する方法はありますか?