mstdmstd Asked: 2025-04-11 22:50:53 +0800 CST2025-04-11 22:50:53 +0800 CST 2025-04-11 22:50:53 +0800 CST 无法使用折叠功能将数据收集到一个数组中 772 在 Laravel 10 / PHP 8.2 应用程序中,我尝试使用collapse设置请求将数据收集到一个数组中,其中一些参数发生了更改: $data = [] FOR(... $data = Arr::collapse($data, $query->where('some_field', $someParameter)->get()->toArray()) ENDFOR, 但这不起作用,结果数组为空。那么我需要使用其他方法吗collapse? 1 个回答 Voted Best Answer 9uifranco 2025-04-12T01:18:36+08:002025-04-12T01:18:36+08:00 Arr::collapse()只接受一个参数,并且它必须是一个数组的数组。 在循环中,您传递了多个参数: $data = Arr::collapse($data, $query->where(...)->get()->toArray()); 仅使用第一个参数,而忽略第二个参数。 它的内部工作原理如下: public static function collapse($array) { $results = []; foreach ($array as $values) { if ($values instanceof Collection) { $values = $values->all(); } elseif (! is_array($values)) { continue; } $results[] = $values; } return array_merge([], ...$results); } 我不知道你的循环具体是如何工作的,但你可以尝试执行以下操作: $data = []; for (...) { $data[] = $query->where('some_field', $someParameter)->get()->toArray(); } $data = Arr::collapse($data);
Arr::collapse()
只接受一个参数,并且它必须是一个数组的数组。在循环中,您传递了多个参数:
仅使用第一个参数,而忽略第二个参数。
它的内部工作原理如下:
我不知道你的循环具体是如何工作的,但你可以尝试执行以下操作: