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