2
初始陣列PHP從一個陣列
Array
(
[0] => Array
(
[RecordDay] => 23
[Amount] => 1.50
[DocumentName] => bank stmt
[DocumentNumber] => 1
)
[1] => Array
(
[RecordDay] => 17
[Amount] => 0.21
[DocumentName] => invoice
[DocumentNumber] => 2
)
[2] => Array
(
[RecordDay] => 17
[Amount] => 1.00
[DocumentName] => invoice
[DocumentNumber] => 2
)
)
從所有的子陣列,其中[RecordDay]
,[DocumentName]
和[DocumentNumber]
是相同的要創建新的數組創建多個陣列。
對於鍵[1]
和[2]
[RecordDay]
,[DocumentName]
和[DocumentNumber]
是相同的。
因此,作爲一個結果,要得到這個
Array
(
[0] => Array
(
[RecordDay] => 23
[Amount] => 1.50
[DocumentName] => bank stmt
[DocumentNumber] => 1
)
)
Array
(
[0] => Array
(
[RecordDay] => 17
[Amount] => 0.21
[DocumentName] => invoice
[DocumentNumber] => 2
)
[1] => Array
(
[RecordDay] => 17
[Amount] => 1.00
[DocumentName] => invoice
[DocumentNumber] => 2
)
)
但不知道該怎麼做
了這樣
$first_loop = true;
foreach($initial_array as $key => $one_dimensional_array){
if($first_loop == true){
$new_array1['RecordDay'][] = $one_dimensional_array['RecordDay'];
$first_loop = false;
}
if($first_loop == false){
if(in_array($one_dimensional_array['RecordDay'], $new_array1['RecordDay'])){
$new_array1['RecordDay'][] = $one_dimensional_array['RecordDay'];
}
else{
$new_array2['RecordDay'][] = $one_dimensional_array['RecordDay'];
}
}//if($first_loop == false){
}//foreach($initial_array as $key => $one_dimensional_array){
了
Array
(
[RecordDay] => Array
(
[0] => 23
[1] => 23
)
[DocumentName] => Array
(
[0] => bank stmt
[1] => bank stmt
)
[DocumentNumber] => Array
(
[0] => 1
[1] => 1
)
)
Array
(
[RecordDay] => Array
(
[0] => 17
[1] => 17
)
[DocumentName] => Array
(
[0] => invoice
[1] => invoice
)
[DocumentNumber] => Array
(
[0] => 2
[1] => 2
)
)
但這不是什麼想要的。任何想法需要改變?
DocumentName和數量沒有關係。號碼是文件號碼,例如,發票號碼AB123,說明04/14-01等等 – user2118559
好吧,我已經更新了答案,以適應該條件:) –
所有作品都非常好。順便試着瞭解它是如何工作的。例如,如果更改爲'foreach($ initial_array as $ key => $ arr){'和'$ temp_array [$ key] [] = $ arr;',則獲取與初始相同的數組。理解所有基於'$ arr ['RecordDay']。「,」。$ arr ['DocumentName']。「,」。$ arr ['DocumentNumber']' – user2118559