1

これが私の問題です。深さが異なる複雑な多次元配列があります。私が試した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 配列が存在する場合は配列をループ = はい、スキップします (データが存在する)

そうしないと

データのない配列の順序を追加

チェック、追加、またはスキップする最後の配列に到達する方法がわかりません。

4

0 に答える 0