[英]Create a new array from a multidimensional array by those arrays have same length in php
I've a multidimensional array looks like below-我有一个多维数组,如下所示-
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
)
)
Now I need a new array looks like below-现在我需要一个如下所示的新数组-
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
)
)
I know by using a loop I can separate my desired arrays and can crate a new array.我知道通过使用循环,我可以分离我想要的数组并可以创建一个新数组。 But without any loop, is it possible to create a new array by PHP built in method?
但是没有任何循环,是否可以通过PHP内置方法创建一个新数组?
Advance thanks for all of you who will give me a nice solution.提前感谢你们所有人,他们会给我一个很好的解决方案。
Note:- array will be too long.注意:- 数组会太长。 It's a bank transaction array so need a fast method which will give output within the shortest time.
这是一个银行交易数组,所以需要一个快速的方法来在最短的时间内给出输出。
You can filter arrays based on it length using array_filter()
您可以使用
array_filter()
根据它的长度过滤数组
$newArr = array_filter($arr, function($item){
return sizeof($item) == 5;
});
If your array is large and you need a fast method, use foreach
instead如果您的数组很大并且需要快速方法,请改用
foreach
foreach ($arr as $key=>$item)
sizeof($item) != 5 ? unset($arr[$key]) : "";
All activities on one go...一次完成所有活动...
$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.