Xin chào,
cảm ơn bạn đã xem xét vấn đề của tôi và đưa ra giải pháp. Nó vẫn không hoạt động như tôi cần, nhưng tôi sẽ thử và chỉnh sửa đoạn mã của bạn.
Đối với mảng trên, mã sẽ xuất ra:
$arr = [
2 => [
'id' => 1,
'families' => [
0 => [
'id' => 2,
'products' => [
1 => 'John Doe'
],
],
]
],
3 => [
'id' => 1,
'products' => [
1 => 'Hi',
2 => 'Hello',
]
],
];
Nhưng thay vào đó chúng tôi nhận được:
(tức là chúng tôi đã mất tất cả thông tin về $arr[2], trong trường hợp cụ thể này chỉ là id của nó, nhưng nếu có thêm thông tin thì sao? Ngoài ra, các “họ” chính trong $arr[2] bị lạc và thay vì $arr[2][‘families’][0] bây giờ chúng tôi có $arr[2][0])
$arr = [
2 => [
0 => [
'id' => 2,
'products' => [
1 => 'John Doe'
],
],
],
3 => [
'id' => 1,
'products' => [
1 => 'Hi',
2 => 'Hello',
]
],
];
Chỉnh sửa:
(các vấn đề nói trên đã được giải quyết bằng cách chỉnh sửa hai dòng mã này, tuy nhiên, các vấn đề mới đã xuất hiện)
// if a family with products exists,. add it to array
if (!empty($familiesWithProducts)){
$hasProducts[$key] = $districts[$key];
$hasProducts[$key]['families'] = $familiesWithProducts;
}
Nếu chúng ta thay đổi mảng cũ một chút như sau:
$arr = [
1 => [
'id' => 1,
'families' => [
0 => [
'id' => 2
],
1 => [
'id' => 3,
'families' => [
0 => [
'id' => 2,
'products' => [
1 => 'Arnold'
],
],
]
],
]
],
2 => [
'id' => 1,
'families' => [
0 => [
'id' => 2,
'products' => [
1 => 'John Doe'
],
],
1 => [
'id' => 3,
'products' => [],
],
]
],
3 => [
'id' => 1,
'products' => [
1 => 'Hi',
2 => 'Hello',
]
],
4 => [
'id' => 1,
'families' => [
0 => [
'id' => 2
],
1 => [
'id' => 3
],
]
],
];
kết quả là:
$arr = [
2 => [
0 => [
'id' => 2,
'products' => [
1 => 'John Doe'
],
],
],
3 => [
'id' => 1,
'products' => [
1 => 'Hi',
2 => 'Hello',
]
],
];
nhưng phải là:
$arr = [
1 => [
'id' => 1,
'families' => [
1 => [
'id' => 3,
'families' => [
0 => [
'id' => 2,
'products' => [
1 => 'Arnold'
],
],
]
],
]
],
2 => [
0 => [
'id' => 2,
'products' => [
1 => 'John Doe'
],
],
],
3 => [
'id' => 1,
'products' => [
1 => 'Hi',
2 => 'Hello',
]
],
];