Rumah >pembangunan bahagian belakang >tutorial php >Mengekstrak data berurutan dengan TakeWhile Laravel ' s
Laravel menawarkan kawalan tepat ke atas penapisan koleksi. Ia mengekstrak unsur -unsur berturut -turut yang memenuhi syarat yang diberikan, berhenti pada elemen pertama yang gagal keadaan. takeWhile
$numbers = collect([1, 2, 3, 4, 2, 1]); $ascending = $numbers->takeWhile(function ($number, $key) use ($numbers) { return $key === 0 || $number > $numbers[$key - 1]; }); // Result: [1, 2, 3, 4]Berikut adalah aplikasi praktikal: Status Pemprosesan Pesanan Penjejakan.
<?php namespace App\Services; use App\Models\Order; use App\Models\OrderStatus; use Illuminate\Support\Collection; class OrderProcessingService { public function getSuccessfulSteps(Order $order): Collection { return $order->statusUpdates() ->oldest() ->get() ->takeWhile(fn (OrderStatus $status) => $status->successful) ->map(fn (OrderStatus $status) => [ 'step' => $status->step_name, 'completed_at' => $status->created_at->format('Y-m-d H:i:s'), 'processor' => $status->processor_name ]); } public function validateProcessingSequence(Collection $steps): bool { $requiredOrder = ['payment', 'inventory', 'packaging', 'shipping']; $currentStep = 0; return $steps->takeWhile(fn ($step) use ($requiredOrder, &$currentStep) => $step['type'] === ($requiredOrder[$currentStep++] ?? null))->count() === count($requiredOrder); } }
sesuai untuk mengendalikan data berurutan, terutamanya berguna untuk memproses kemas kini status, mengesahkan urutan, atau menganalisis trend data. Kaedah ini menyediakan cara yang ringkas dan cekap untuk menguruskan senario tersebut. takeWhile
Atas ialah kandungan terperinci Mengekstrak data berurutan dengan TakeWhile Laravel ' s. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!