Maison  >  Article  >  développement back-end  >  Comment convertir un tableau unidimensionnel en php

Comment convertir un tableau unidimensionnel en php

王林
王林original
2023-05-19 18:40:38391parcourir

Convertir en tableau 2D ?

En programmation PHP, il est parfois nécessaire de convertir un tableau unidimensionnel en un tableau bidimensionnel, afin que le traitement et l'affichage des données soient plus pratiques. Par exemple, regroupez les données dans un tableau unidimensionnel selon certaines règles et placez-les dans un tableau bidimensionnel pour faciliter les statistiques et l'analyse. Cet article explique comment convertir un tableau unidimensionnel en un tableau bidimensionnel en PHP, et comment regrouper et trier les données.

  1. Utilisez la fonction array_chunk() pour la conversion

PHP fournit une fonction appelée array_chunk(), qui peut diviser un tableau en plusieurs petits tableaux, chaque petit tableau contenant un nombre spécifié d'éléments. Parmi eux, le paramètre $size représente le nombre d'éléments contenus dans chaque petit tableau, et le paramètre $preserve_keys précise s'il faut conserver les noms de clés du tableau d'origine. Utilisez cette fonction pour convertir un tableau unidimensionnel en un tableau bidimensionnel. Voici un exemple de code :

<?php
$original_array = array('a', 'b', 'c', 'd', 'e', 'f');
$chunked_array = array_chunk($original_array, 2);  // 将原数组按每2个元素分为一个小数组
print_r($chunked_array);
?>

Le résultat du code ci-dessus est le suivant :

Array
(
    [0] => Array
        (
            [0] => a
            [1] => b
        )

    [1] => Array
        (
            [0] => c
            [1] => d
        )

    [2] => Array
        (
            [0] => e
            [1] => f
        )

)

Grâce à la fonction array_chunk(), nous divisons le tableau d'origine en trois petits tableaux, chaque petit tableau contient deux éléments. Cela convertit un tableau unidimensionnel en un tableau bidimensionnel.

  1. Utiliser la boucle for pour la conversion

En plus d'utiliser la fonction array_chunk(), nous pouvons également utiliser la boucle for pour terminer ce processus de conversion. Voici l'exemple de code :

<?php
$original_array = array('a', 'b', 'c', 'd', 'e', 'f');
$chunked_array = array();
$chunk_size = 2;  // 每个小数组包含元素数量
$chunk_count = ceil(count($original_array) / $chunk_size);  // 小数组数量
for ($i = 0; $i < $chunk_count; $i++) {
    $chunked_array[$i] = array_slice($original_array, $i * $chunk_size, $chunk_size);
}
print_r($chunked_array);
?>

Le résultat du code ci-dessus est le même que le résultat de l'utilisation de la fonction array_chunk() ci-dessus. Dans cet exemple, nous comptons d'abord le nombre de petits tableaux, puis utilisons la boucle for et la fonction array_slice() pour diviser le tableau d'origine et le stocker dans le tableau $chunked_array.

  1. Regrouper et trier les données

Après avoir converti le tableau unidimensionnel en un tableau bidimensionnel, nous pouvons regrouper et trier les données en fonction de nos propres besoins. Voici un exemple de code :

<?php
$original_array = array(
    array('name' => '张三', 'age' => 18, 'gender' => '男'),
    array('name' => '李四', 'age' => 21, 'gender' => '女'),
    array('name' => '王五', 'age' => 22, 'gender' => '男'),
    array('name' => '赵六', 'age' => 19, 'gender' => '女')
);
$chunked_array = array_chunk($original_array, 2);  // 将原数组按每2个元素分为一个小数组
$sorted_array = array();
foreach ($chunked_array as $chunk) {
    $sorted_chunk = array();
    foreach ($chunk as $item) {
        $sorted_chunk[(int)$item['age']][] = $item;
    }
    ksort($sorted_chunk);
    $sorted_array[] = $sorted_chunk;
}
print_r($sorted_array);
?>

Le code ci-dessus définit un tableau unidimensionnel $original_array contenant quatre éléments. Chaque élément est un tableau associatif contenant trois paires clé-valeur : nom, âge et sexe. Nous divisons le tableau d'origine en un petit tableau tous les deux éléments et trions les éléments du petit tableau en fonction de l'âge. Enfin, nous obtenons un tableau bidimensionnel $sorted_array, dont la structure est la suivante :

Array
(
    [0] => Array
        (
            [18] => Array
                (
                    [0] => Array
                        (
                            [name] => 张三
                            [age] => 18
                            [gender] => 男
                        )

                )

            [19] => Array
                (
                    [0] => Array
                        (
                            [name] => 赵六
                            [age] => 19
                            [gender] => 女
                        )

                )

        )

    [1] => Array
        (
            [21] => Array
                (
                    [0] => Array
                        (
                            [name] => 李四
                            [age] => 21
                            [gender] => 女
                        )

                )

            [22] => Array
                (
                    [0] => Array
                        (
                            [name] => 王五
                            [age] => 22
                            [gender] => 男
                        )

                )

        )

)

À travers le. au-dessus du code, nous Les éléments du même groupe sont triés par âge et le résultat final est placé dans le tableau $sorted_array.

Résumé

Cet article présente la méthode de conversion d'un tableau unidimensionnel en un tableau bidimensionnel en PHP, y compris l'utilisation de la fonction array_chunk() et de la boucle for pour la conversion, et présente en outre comment regrouper et trier les données. Dans le processus de programmation actuel, nous pouvons choisir différentes méthodes de traitement et d'affichage des données en fonction de nos propres besoins.

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