Maison >développement back-end >tutoriel php >Comment regrouper un tableau PHP 2D en un tableau 3D par nom de machine ?

Comment regrouper un tableau PHP 2D en un tableau 3D par nom de machine ?

DDD
DDDoriginal
2024-12-09 20:31:14387parcourir

How to Group a 2D PHP Array into a 3D Array by Machine Name?

Comment convertir un tableau 2D en tableau 3D en PHP

Vous disposez d'un tableau 2D existant qui contient des informations de tâche pour différentes machines. La tâche consiste à convertir ce tableau en un tableau 3D, regroupé par nom de machine.

La sortie souhaitée est un tableau 3D où les clés sont des noms de machine et chaque nom de machine contient un tableau d'enregistrements de tâches. Les enregistrements de tâches comprennent les champs suivants :

Job_Name
Quantity
Start_Date
Completion_Date
Labor

Solution de code PHP :

Pour convertir le tableau 2D en tableau 3D, vous pouvez utiliser le code PHP suivant :

$result = [];
foreach ($MainArray as $record) {
    $result[$record['Machine_Name']][] = $record;
}

Explication :

La boucle foreach parcourt chaque enregistrement du $MainArray. Pour chaque enregistrement, il vérifie le champ Machine_Name et ajoute l'enregistrement au tableau de machines correspondant dans le tableau $result.

Si le nom de la machine n'existe pas en tant que clé dans le tableau $result, il est créé et l'enregistrement est ajouté au tableau sous cette clé.

Exemple :

Étant donné ce qui suit $MainArray :

[0] => [
    'Job_Name' => 'WXYZ',
    'Quantity' => 1000,
    'Machine_Name' => 'Machine1',
    'Start_Date' => '2014-07-30 00:00:00',
    'Completion_Date' => '2014-08-02 00:00:00',
    'Labor' => 4
]
[1] => [
    'Job_Name' => 'ABCD',
    'Quantity' => 1500,
    'Machine_Name' => 'Machine2',
    'Start_Date' => '2014-08-08 00:00:00',
    'Completion_Date' => '2014-08-14 00:00:00',
    'Labor' => 2
]
[2] => [
    'Job_Name' => 'BCDA',
    'Quantity' => 1200,
    'Machine_Name' => 'Machine1',
    'Start_Date' => '2014-08-02 00:00:00',
    'Completion_Date' => '2014-08-07 00:00:00',
    'Labor' => 1
]

La sortie du tableau $result serait :

[Machine1] => [
    [
        'Job_Name' => 'WXYZ',
        'Quantity' => 1000,
        'Start_Date' => '2014-07-30 00:00:00',
        'Completion_Date' => '2014-08-02 00:00:00',
        'Labor' => 4
    ],
    [
        'Job_Name' => 'BCDA',
        'Quantity' => 1200,
        'Start_Date' => '2014-08-02 00:00:00',
        'Completion_Date' => '2014-08-07 00:00:00',
        'Labor' => 1
    ]
]
[Machine2] => [
    [
        'Job_Name' => 'ABCD',
        'Quantity' => 1500,
        'Start_Date' => '2014-08-08 00:00:00',
        'Completion_Date' => '2014-08-14 00:00:00',
        'Labor' => 2
    ]
]

Ce nouveau tableau 3D peut être utilisé pour accéder aux enregistrements de tâches regroupés par nom de machine.

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:
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