Maison > développement back-end > tutoriel php > Extraction de données séquentielles avec la prise de Laravel

Extraction de données séquentielles avec la prise de Laravel

百草
Libérer: 2025-03-06 01:34:13
original
833 Les gens l'ont consulté

Extracting Sequential Data with Laravel's takeWhile

La méthode takeWhile de Laravel offre un contrôle précis sur le filtrage de collecte. Il extrait des éléments consécutifs satisfaisant une condition donnée, s'arrêtant au premier élément qui échoue à la condition.

Cet exemple démontre l'extraction des nombres ascendants d'une collection:

$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]
Copier après la connexion

Voici une application pratique: le statut de traitement des commandes de suivi.

<?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);
    }
}
Copier après la connexion

takeWhile est idéal pour gérer les données séquentielles, particulièrement utiles pour le traitement des mises à jour d'état, la validation des séquences ou l'analyse des tendances de données. La méthode fournit un moyen concis et efficace de gérer de tels scénarios.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal