Laravel如何将两个字段提取为一维普通数组?
实现方法
你可以通过集合的map+flatten或者flatMap方法来实现需求:
方法一:map + flatten
$scheduleArray = ScheduleModel::all() ->map(function ($item) { return [$item->starttime, $item->endtime]; }) ->flatten() ->toArray();
map遍历每个模型实例,将每个实例转换为包含starttime和endtime的二维数组片段flatten把二维结构的集合转为一维toArray()将集合最终转为普通PHP数组
方法二:flatMap(更简洁)
$scheduleArray = ScheduleModel::all() ->flatMap(function ($item) { return [$item->starttime, $item->endtime]; }) ->toArray();
flatMap会直接将每个回调返回的数组展开到集合中,省去额外的扁平化步骤。
为什么pluck不适用
pluck()方法的作用是提取单个字段的值集合,或者生成「键-值」形式的数组(如pluck('starttime', 'id')),无法同时提取两个字段并按starttime→endtime的顺序拼接成一维数组。
内容的提问来源于stack exchange,提问作者Farhida Arahid
相关产品推荐
相关产品推荐

