我正在做 Laravel 项目。我有一个 sql 查询,
$catcount=2;
for($i=0;$i<$catcount;$i++) {
$subCat[] = Category::where('parent_id', '=', $userCategory[$i])->pluck('id');
}
$subCat 返回一个数组,
[[54,55,56,57,58],[48,49,50,51,52]]
我希望这个数组作为一维数组,例如,
[54,55,56,57,58,48,49,50,51,52]
我不知道如何做到这一点,请帮忙并提前致谢。
我建议您在查询之前进行 ids 合并,这样您只需访问一次数据库即可节省一些运行时间。
$catcount = 2;
$parents_ids = [];
for ($i = 0; $i < $catcount; $i++) {
$parents_ids[] = $userCategory[$i];
}
$subCats = Category::whereIn('parent_id', $parents_ids)->pluck('id');
$catcount=2;
for($i=0;$i<$catcount;$i++) {
$subCat[] = Category::where('parent_id', '=' $userCategory[$i])->pluck('id');
}
array_merge($subCat[0],$subCat[1]);
从最终的数组中,您可以进行数组合并
list($a1, $a2) = $subCat;
$subCat = array_merge($a1, $a2);
有很多方法可以做到这一点。其中之一:简单,但通用,可读且可更新(如果您的数据结构发生变化,您将能够立即更新此代码):
$newArr = [];
foreach ($subCat as $subArr) {
foreach ($subArr as $value) {
$newArr[] = $value;
}
}
如果您的数组有多个元素,您可以使用以下代码合并它们:
$subCats = call_user_func_array("array_merge", $subCat);