我想在php中模拟2个数组的内部联接。
我该怎么做?
我有这些数组:
$parents = [
0 => ['parent_id' => 1, 'data1'],
1 => ['parent_id' => 2, 'data2'],
2 => ['parent_id' => 3, 'data3'],
];
$children = [
1 => [
['parent_id' => 1, 'children 1'],
['parent_id' => 1, 'children 2'],
['parent_id' => 1, 'children 3'],
],
2 =>[
['parent_id' => 2, 'children 11'],
['parent_id' => 2, 'children 22'],
['parent_id' => 2, 'children 33'],
]
];
结果应该是:
$result = [
0 => ['parent_id' => 1, 'data1', 'children 1'],
1 => ['parent_id' => 1, 'data1', 'children 2'],
2 => ['parent_id' => 1, 'data1', 'children 3'],
3 => ['parent_id' => 2, 'data2', 'children 11'],
4 => ['parent_id' => 2, 'data2', 'children 22'],
5 => ['parent_id' => 2, 'data2', 'children 33'],
6 => ['parent_id' => 3, 'data3'],
];
我尝试了以下代码:
$result = [];
foreach ($parents as $id => $parent) {
if (!isset($children[$id])) {
$result[] = $parent;
continue;
}
foreach ($children[$id] as $child) {
$result[] = array_merge($parent, $child);
}
}
print_r($result);
但是我希望有更好的方法来做到这一点。 有没有这样做的php函数?
谢谢!