これが私の問題です。深さが異なる複雑な多次元配列があります。私が試したStackoverflowのすべてが失敗しました。私はarray_push、array_merge、array_combined、foreachなどで試しました。私が持っているコードはBSです。
配列 (その一部 (15,000 レコードあり)) は、こちらで見つけることができます。
私の目標は、最後の配列を見つけて、追加の配列を追加することです。
その多次元配列で私が探している配列は次のとおりです。
[Branch] => Array
(
[Branchno] => 000
[Stockqty] => 1
[Saleprice] => 119.95
[Xprice] => 0
[Qprice] => 54.85
[NOS] => 0
)
この配列が見つかったら、この配列を値なしで追加する必要があります。
[Order] => Array
(
[Deliverydate] =>
[Orderqty] =>
)
この後、配列は次のようになります。
[Branch] => Array
(
[Branchno] => 000
[Stockqty] => 1
[Saleprice] => 119.95
[Xprice] => 0
[Qprice] => 54.85
[NOS] => 0
[Order] => Array
(
[Deliverydate] =>
[Orderqty] =>
)
)
問題は、その配列に、次のようなサブ配列を含めることができることです。
[Branch] => Array
(
[0] => Array
(
[Branchno] => 000
[Stockqty] => -4
[Saleprice] => 119.95
[Xprice] => 0
[Qprice] => 54.85
[NOS] => 0
)
[1] => Array
(
[Branchno] => 001
[Stockqty] => 4
[Saleprice] => 119.95
[Xprice] => 0
[Qprice] => 54.85
[NOS] => 0
)
)
そして、それらの配列に同じ配列を追加する必要があります。したがって、配列は次のようになります。
[Branch] => Array
(
[0] => Array
(
[Branchno] => 000
[Stockqty] => -4
[Saleprice] => 119.95
[Xprice] => 0
[Qprice] => 54.85
[NOS] => 0
[Order] => Array
(
[Deliverydate] =>
[Orderqty] =>
)
)
[1] => Array
(
[Branchno] => 001
[Stockqty] => 4
[Saleprice] => 119.95
[Xprice] => 0
[Qprice] => 54.85
[NOS] => 0
[Order] => Array
(
[Deliverydate] =>
[Orderqty] =>
)
)
)
追加の問題は、これらの配列の一部に、追加したい配列があり、データが入力されている可能性があり、スキップする必要があることです。このような:
[Branch] => Array
(
[Branchno] => 000
[Stockqty] => 1
[Saleprice] => 119.95
[Xprice] => 0
[Qprice] => 54.85
[NOS] => 0
[Order] => Array
(
[Deliverydate] => 20060911
[Orderqty] => 8
)
)
またはこのように:
[Branch] => Array
(
[0] => Array
(
[Branchno] => 000
[Stockqty] => -4
[Saleprice] => 119.95
[Xprice] => 0
[Qprice] => 54.85
[NOS] => 0
)
[1] => Array
(
[Branchno] => 001
[Stockqty] => 4
[Saleprice] => 119.95
[Xprice] => 0
[Qprice] => 54.85
[NOS] => 0
[Order] => Array
(
[Deliverydate] => 20060911
[Orderqty] => 8
)
)
)
基本的に、(疑似コード)すべてのサブアレイをチェックする必要があります(深さはわかりません)、ORDERアレイが存在するかどうかをチェックします([NOS]の後)
配列の順序が存在する場合 = いいえ、データのない配列を追加します
配列順序が存在する場合 = はい、順序配列にサブ配列があるかどうかを確認し、そうでない場合はスキップします (データが存在する)
そうしないと
Order 配列が存在する場合は配列をループ = はい、スキップします (データが存在する)
そうしないと
データのない配列の順序を追加
チェック、追加、またはスキップする最後の配列に到達する方法がわかりません。