簡體   English   中英

通過這些數組在php中具有相同的長度,從多維數組創建一個新數組

[英]Create a new array from a multidimensional array by those arrays have same length in php

我有一個多維數組,如下所示-

Array
(
    [0] => Array
        (
            [0] => Account Number
            [1] => Account Title
            [2] => Account Type
            [3] => Currency
            [4] => Available Balance
            [5] => Ledger Balance
        )

    [1] => Array
        (
            [0] => xxxxxxxx YYYYYYY
        )

    [2] => Array
        (
            [0] => 
        )

    [3] => Array
        (
            [0] => Date
            [1] => Description
            [2] => Withdrawal
            [3] => Deposit
            [4] => Balance
        )

    [4] => Array
        (
            [0] => 
        )

    [5] => Array
        (
            [0] => `30/08/2018
            [1] => EXIM 5287609
            [2] => -
            [3] => 25000.00
            [4] => 62672.880
        )

    [6] => Array
        (
            [0] => `03/09/2018
            [1] => PRIME 9373059
            [2] => -
            [3] => 191920.00
            [4] => 254592.880
        )

    [7] => Array
        (
            [0] => `04/09/2018
            [1] => RV CLEARING FEE-CHQ 9373059
            [2] => 8.70
            [3] => -
            [4] => 254584.180
        )

    [8] => Array
        (
            [0] => `04/09/2018
            [1] => VAT AT SOURCE
            [2] => 1.30
            [3] => -
            [4] => 254582.880
        )

    [9] => Array
        (
            [0] => `04/09/2018
            [1] => ATM WDR AT 4503 13:55:02
            [2] => 20000.00
            [3] => -
            [4] => 234582.880
        )

    [10] => Array
        (
            [0] => `08/09/2018
            [1] => ATM WDR AT 4504 11:58:19
            [2] => 10000.00
            [3] => -
            [4] => 224582.880
        )

    [11] => Array
        (
            [0] => `09/09/2018
            [1] => ATM WDR AT 4500 20:05:19
            [2] => 40000.00
            [3] => -
            [4] => 184582.880
        )

    [12] => Array
        (
            [0] => `09/09/2018
            [1] => ATM WDR AT 4500 20:05:59
            [2] => 40000.00
            [3] => -
            [4] => 144582.880
        )

    [13] => Array
        (
            [0] => `09/09/2018
            [1] => ATM WDR AT 4500 20:06:37
            [2] => 20000.00
            [3] => -
            [4] => 124582.880
        )

    [14] => Array
        (
            [0] => `12/09/2018
            [1] => B ASIA 5904486
            [2] => -
            [3] => 490000.00
            [4] => 614582.880
        )

    [15] => Array
        (
            [0] => `12/09/2018
            [1] => B ASIA 5904486 RETURN
            [2] => 490000.00
            [3] => -
            [4] => 124582.880
        )

    [16] => Array
        (
            [0] => `12/09/2018
            [1] => RV CLEARING FEE-CHQ 5904486
            [2] => 8.70
            [3] => -
            [4] => 124574.180
        )

    [17] => Array
        (
            [0] => `12/09/2018
            [1] => VAT AT SOURCE
            [2] => 1.30
            [3] => -
            [4] => 124572.880
        )

    [18] => Array
        (
            [0] => `12/09/2018
            [1] => ATM WDR AT 4500 12:31:55
            [2] => 20000.00
            [3] => -
            [4] => 104572.880
        )

    [19] => Array
        (
            [0] => `13/09/2018
            [1] => ATM WDR AT 4503 14:59:28
            [2] => 20000.00
            [3] => -
            [4] => 84572.880
        )

    [20] => Array
        (
            [0] => `16/09/2018
            [1] => ATM WDR AT 4500 17:10:04
            [2] => 10000.00
            [3] => -
            [4] => 74572.880
        )

    [21] => Array
        (
            [0] => `19/09/2018
            [1] => B ASIA 5904486
            [2] => -
            [3] => 490000.00
            [4] => 564572.880
        )

    [22] => Array
        (
            [0] => `19/09/2018
            [1] => ATM WDR AT 4502 16:24:29
            [2] => 40000.00
            [3] => -
            [4] => 524572.880
        )

    [23] => Array
        (
            [0] => `19/09/2018
            [1] => ATM WDR AT 4502 16:25:12
            [2] => 10000.00
            [3] => -
            [4] => 514572.880
        )

    [24] => Array
        (
            [0] => `20/09/2018
            [1] => B ASIA 5904486 RETURN
            [2] => 490000.00
            [3] => -
            [4] => 24572.880
        )

    [25] => Array
        (
            [0] => `20/09/2018
            [1] => RV CLEARING FEE-CHQ 5904486
            [2] => 8.70
            [3] => -
            [4] => 24564.180
        )

    [26] => Array
        (
            [0] => `20/09/2018
            [1] => VAT AT SOURCE
            [2] => 1.30
            [3] => -
            [4] => 24562.880
        )

    [27] => Array
        (
            [0] => `22/09/2018
            [1] => ATM WDR AT 4500 14:09:11
            [2] => 15000.00
            [3] => -
            [4] => 9562.880
        )

    [28] => Array
        (
            [0] => `24/09/2018
            [1] => CASH DEPOSIT
            [2] => -
            [3] => 100000.00
            [4] => 109562.880
        )

    [29] => Array
        (
            [0] => `25/09/2018
            [1] => EFT TO PRIME BANK LT
            [2] => 45000.00
            [3] => -
            [4] => 64562.880
        )

    [30] => Array
        (
            [0] => `26/09/2018
            [1] => ATM WDR AT 4503 11:06:25
            [2] => 5000.00
            [3] => -
            [4] => 59562.880
        )

)

現在我需要一個如下所示的新數組-

array(
[1] => Array
        (
            [0] => Date
            [1] => Description
            [2] => Withdrawal
            [3] => Deposit
            [4] => Balance
        )
    [2] => Array
        (
            [0] => `30/08/2018
            [1] => EXIM 5287609
            [2] => -
            [3] => 25000.00
            [4] => 62672.880
        )

    [3] => Array
        (
            [0] => `03/09/2018
            [1] => PRIME 9373059
            [2] => -
            [3] => 191920.00
            [4] => 254592.880
        )

    [4] => Array
        (
            [0] => `04/09/2018
            [1] => RV CLEARING FEE-CHQ 9373059
            [2] => 8.70
            [3] => -
            [4] => 254584.180
        )

    [5] => Array
        (
            [0] => `04/09/2018
            [1] => VAT AT SOURCE
            [2] => 1.30
            [3] => -
            [4] => 254582.880
        )

    [6] => Array
        (
            [0] => `04/09/2018
            [1] => ATM WDR AT 4503 13:55:02
            [2] => 20000.00
            [3] => -
            [4] => 234582.880
        )

    [7] => Array
        (
            [0] => `08/09/2018
            [1] => ATM WDR AT 4504 11:58:19
            [2] => 10000.00
            [3] => -
            [4] => 224582.880
        )

    [8] => Array
        (
            [0] => `09/09/2018
            [1] => ATM WDR AT 4500 20:05:19
            [2] => 40000.00
            [3] => -
            [4] => 184582.880
        )

    [9] => Array
        (
            [0] => `09/09/2018
            [1] => ATM WDR AT 4500 20:05:59
            [2] => 40000.00
            [3] => -
            [4] => 144582.880
        )

    [10] => Array
        (
            [0] => `09/09/2018
            [1] => ATM WDR AT 4500 20:06:37
            [2] => 20000.00
            [3] => -
            [4] => 124582.880
        )

    [11] => Array
        (
            [0] => `12/09/2018
            [1] => B ASIA 5904486
            [2] => -
            [3] => 490000.00
            [4] => 614582.880
        )

    [12] => Array
        (
            [0] => `12/09/2018
            [1] => B ASIA 5904486 RETURN
            [2] => 490000.00
            [3] => -
            [4] => 124582.880
        )

    [13] => Array
        (
            [0] => `12/09/2018
            [1] => RV CLEARING FEE-CHQ 5904486
            [2] => 8.70
            [3] => -
            [4] => 124574.180
        )

    [14] => Array
        (
            [0] => `12/09/2018
            [1] => VAT AT SOURCE
            [2] => 1.30
            [3] => -
            [4] => 124572.880
        )

    [15] => Array
        (
            [0] => `12/09/2018
            [1] => ATM WDR AT 4500 12:31:55
            [2] => 20000.00
            [3] => -
            [4] => 104572.880
        )

    [16] => Array
        (
            [0] => `13/09/2018
            [1] => ATM WDR AT 4503 14:59:28
            [2] => 20000.00
            [3] => -
            [4] => 84572.880
        )

    [17] => Array
        (
            [0] => `16/09/2018
            [1] => ATM WDR AT 4500 17:10:04
            [2] => 10000.00
            [3] => -
            [4] => 74572.880
        )

    [18] => Array
        (
            [0] => `19/09/2018
            [1] => B ASIA 5904486
            [2] => -
            [3] => 490000.00
            [4] => 564572.880
        )

    [19] => Array
        (
            [0] => `19/09/2018
            [1] => ATM WDR AT 4502 16:24:29
            [2] => 40000.00
            [3] => -
            [4] => 524572.880
        )

    [20] => Array
        (
            [0] => `19/09/2018
            [1] => ATM WDR AT 4502 16:25:12
            [2] => 10000.00
            [3] => -
            [4] => 514572.880
        )

    [21] => Array
        (
            [0] => `20/09/2018
            [1] => B ASIA 5904486 RETURN
            [2] => 490000.00
            [3] => -
            [4] => 24572.880
        )

    [22] => Array
        (
            [0] => `20/09/2018
            [1] => RV CLEARING FEE-CHQ 5904486
            [2] => 8.70
            [3] => -
            [4] => 24564.180
        )

    [23] => Array
        (
            [0] => `20/09/2018
            [1] => VAT AT SOURCE
            [2] => 1.30
            [3] => -
            [4] => 24562.880
        )

    [24] => Array
        (
            [0] => `22/09/2018
            [1] => ATM WDR AT 4500 14:09:11
            [2] => 15000.00
            [3] => -
            [4] => 9562.880
        )

    [25] => Array
        (
            [0] => `24/09/2018
            [1] => CASH DEPOSIT
            [2] => -
            [3] => 100000.00
            [4] => 109562.880
        )

    [26] => Array
        (
            [0] => `25/09/2018
            [1] => EFT TO PRIME BANK LT
            [2] => 45000.00
            [3] => -
            [4] => 64562.880
        )

    [27] => Array
        (
            [0] => `26/09/2018
            [1] => ATM WDR AT 4503 11:06:25
            [2] => 5000.00
            [3] => -
            [4] => 59562.880
        )
)

我知道通過使用循環,我可以分離我想要的數組並可以創建一個新數組。 但是沒有任何循環,是否可以通過PHP內置方法創建一個新數組?

提前感謝你們所有人,他們會給我一個很好的解決方案。

注意:- 數組會太長。 這是一個銀行交易數組,所以需要一個快速的方法來在最短的時間內給出輸出。

您可以使用array_filter()根據它的長度過濾數組

$newArr = array_filter($arr, function($item){
    return sizeof($item) == 5;
});

如果您的數組很大並且需要快速方法,請改用foreach

foreach ($arr as $key=>$item)
    sizeof($item) != 5 ? unset($arr[$key]) : "";

一次完成所有活動...

$length=count($arr);

for($i=0;$i<$length;$i++){
    if(count($arr[$i])==4){
       // execute desired process 
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM