Rumah >pembangunan bahagian belakang >tutorial php >Mengekstrak data berurutan dengan TakeWhile Laravel ' s

Mengekstrak data berurutan dengan TakeWhile Laravel ' s

百草
百草asal
2025-03-06 01:34:13836semak imbas

Extracting Sequential Data with Laravel's takeWhile

Kaedah

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

Contoh ini menunjukkan pengekstrakan nombor menaik dari koleksi:

$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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn