Maison >développement back-end >Problème PHP >Apprentissage des tableaux PHP : Comment réinitialiser l'index d'un tableau multidimensionnel

Apprentissage des tableaux PHP : Comment réinitialiser l'index d'un tableau multidimensionnel

青灯夜游
青灯夜游original
2021-08-27 13:21:123043parcourir

Dans l'article précédent "Apprentissage des tableaux PHP : Comment supprimer les éléments vides ou en double", nous avons présenté la désemption et la déduplication des tableaux, c'est-à-dire la méthode de suppression des éléments vides et des éléments en double dans le tableau. Nous venons de parler brièvement de la duplication. . Méthode pour définir l'index d'un tableau unidimensionnel. L'index d'un tableau unidimensionnel peut être réinitialisé, mais comment réinitialiser l'index d'un tableau bidimensionnel ou même d'un tableau multidimensionnel ? Présentons la méthode ci-dessous.

→Recommandations associées : Résumé de la série d'apprentissage des tableaux PHP (mis à jour en permanence~)

Tout d'abord, nous savons d'après ce qui précède que si vous souhaitez réinitialiser l'index d'un tableau unidimensionnel, il est très simple, utiliser directement la fonction array_values ​​($array) fera l'affaire. La fonction array_values($array)函数就行。

array_values()函数的作用是返回数组中所有元素的值,使用起来非常简单,只有一个必选参数$array,就可以返回一个包含给定数组中所有值的数组,但不保留键名。被返回的数组将使用索引数组的形式,数组的索引从 0 开始且以 1 递增。

我们可以利用array_values()函数将元素下标混乱的数组重新理顺,即索引从 0 开始且以 1 递增;该函数不仅可以用于索引数组,也可用于关联数组,能将关联数组转化为索引数组。

而重置多维数组的索引,也需要利用到这个array_values()函数。下面我们直接给出实现方法:

function reform_keys($array){
    if(!is_array($array)){
        return $array;
    }
    $keys = implode('', array_keys($array));
    if(is_numeric($keys)){
        $array = array_values($array);
    }
    $array = array_map('reform_keys', $array);
    return $array;
};

测试一下,有下面一个多维数组

$post = [
    0 => [
        'title' => 'xxx联票',
        'price' => 368.00,
        'items' => [
            '33' => [
                'scenic_id' => 33,
                'products' => [
                    'goods_id' => 13
                ]
            ],
            '1500' => [
                'scenic_id' => 1500,
                'products' => [
                    'goods_id' => 57
                ]
            ],
        ],
        'tickets' => 9
    ],
    10 => [
        'title' => 'zzz联票',
        'price' => 500.00,
        'items' => [
            '157' => [
                'scenic_id' => 157,
                'products' => [
                    'goods_id' => 77
                ],
                'attr' => [
                    '50' => [
                        'item' => '午场'
                    ],
                    '55' => [
                        'item' => '可退'
                    ]
                ]
            ],
            '19' => [
                'scenic_id' => 19,
                'products' => [
                    'goods_id' => 87
                ]
            ]
        ],
        'tickets' => 3
    ],
];

调用reform_keys()函数重置$post数组的索引,并输出重置后的数组:

$list = reform_keys($post);
var_dump($list);

输出结果为:

Apprentissage des tableaux PHP : Comment réinitialiser lindex dun tableau multidimensionnel

可以看出,多维数组$post里面所有层级的索引都被重置,从0开始计数了!

下面给大家介绍一下里面用的函数:

  • array_keys($array):获取$array数组中所有键名;

  • $keys=implode('', array_keys($array)):将键名数组中的元素拼接在一起,返回一个字符串$keys

  • is_numeric($keys):检测变量$keys是否为数字或数字字符串。

  • array_values($array):获取全部数值,即重置索引;

  • array_map('reform_keys', $array)

    array_values() consiste à renvoyer les valeurs de tous les éléments du tableau. Elle est très simple à utiliser avec un seul paramètre obligatoire $array, elle peut renvoyer un tableau contenant tous. les valeurs du tableau donné, mais les noms de clés ne sont pas conservés. Le tableau renvoyé se présentera sous la forme d'un tableau indexé, avec des indices de tableau commençant à 0 et augmentant de 1.


    Nous pouvons utiliser la fonction array_values() pour réorganiser le tableau avec des indices d'éléments déroutants, c'est-à-dire que l'index commence à 0 et augmente de 1 ; cette fonction peut être utilisée non seulement pour les tableaux d'index, mais aussi pour les tableaux associatifs, qui peut convertir des tableaux associatifs en Convertir en tableau indexé.
Pour réinitialiser l'index d'un tableau multidimensionnel, vous devez également utiliser la fonction array_values(). Ci-dessous nous donnons directement la méthode d'implémentation :

rrreeeTestez-le, il existe le tableau multidimensionnel suivant rrreee

Appelez la fonction reform_keys() pour réinitialiser l'index du tableau $post, et sortez le tableau de réinitialisation :

rrreee Le résultat de sortie est :

🎜Apprentissage des tableaux PHP : Comment réinitialiser lindex dun tableau multidimensionnel 🎜🎜 On peut voir que les index de tous les niveaux du tableau multidimensionnel $post ont été réinitialisés et le comptage commence à 0 ! 🎜🎜Laissez-moi vous présenter les fonctions utilisées : 🎜
  • 🎜array_keys($array) : Obtenez le $array array Tous les noms de clés ; 🎜🎜
  • 🎜$keys=implode('', array_keys($array)) : Rassemblez les éléments du tableau de noms de clés et renvoyez une chaîne $ clés. 🎜🎜
  • 🎜is_numeric($keys) : Vérifiez si la variable $keys est un nombre ou une chaîne numérique. 🎜🎜
  • 🎜array_values($array) : récupère toutes les valeurs, c'est-à-dire réinitialise l'index 🎜🎜
  • 🎜array_map('reform_keys', $array) code> : Appliquez la fonction de rappel reform_keys() à chaque élément du tableau $array. 🎜🎜array_map() renvoie un tableau. Le contenu du tableau est array1. Les éléments sont le résultat de l'appel du rappel pour les paramètres dans l'ordre d'index (lorsqu'il y a plus de tableaux, les éléments des tableaux seront également transmis). Le nombre de paramètres de la fonction de rappel doit correspondre au nombre de tableaux dans l'argument array_map(). 🎜🎜🎜🎜🎜C'est tout. Si vous voulez savoir autre chose, vous pouvez cliquer ici. → →🎜Tutoriel vidéo php🎜🎜🎜Enfin, je recommande un tutoriel vidéo gratuit sur les tableaux PHP : 🎜Explication vidéo de la fonction tableau de fonctions PHP🎜, venez apprendre ! 🎜

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