状況によって値が変化する配列$cartArray, $newArray, $oldArrayがあります。
php
1var_dump($cartArray); 2var_dump($newArray); 3var_dump($oldArray);
result.php
1 2array(1) { 3 [1636679760]=> 4 array(1) { 5 ["cart_price"]=> 6 int(35999) 7 } 8} 9array(2) { 10 [1632531120]=> 11 array(1) { 12 ["new_price"]=> 13 int(-1) 14 } 15 [1636679760]=> 16 array(1) { 17 ["new_price"]=> 18 int(35999) 19 } 20} 21array(1) { 22 [1632531120]=> 23 array(1) { 24 ["old_price"]=> 25 int(-1) 26 } 27}
これらの配列を結合すると、期待する結果が得られます。
php
1$allArray = array_replace_recursive($cartArray, $newArray, $oldArray);
result.php
1array(2) { 2 [1636679760]=> 3 array(2) { 4 ["cart_price"]=> 5 int(35999) 6 ["new_price"]=> 7 int(35999) 8 } 9 [1632531120]=> 10 array(2) { 11 ["new_price"]=> 12 int(-1) 13 ["old_price"]=> 14 int(-1) 15 } 16}
ところが、$cartArray, $newArray, $oldArray いずれかの配列がnullであることがあり、その場合はエラーになってしまいます。
nullでない配列のみを結合するために色々試しましたが上手く行かず、識者の皆様にお知恵をお借りしたく質問させていただきます。
試したこと
php
1$setArray = [$cartArray, $newArray, $oldArray]; 2$setArrayCnt = count($setArray); 3for ($i = 0; $i < $setArrayCnt; $i++) { 4 if(!is_null($setArray[$i])){ 5 $setArray[] = $setArray[$i]; 6 } 7} 8 9$allArray = array_replace_recursive($setArray); // 配列は作成できるが、上のような期待する配列にならない
以上、よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー