Maison  >  Article  >  développement back-end  >  Comment obtenir le premier nombre d'éléments d'un tableau multidimensionnel en php

Comment obtenir le premier nombre d'éléments d'un tableau multidimensionnel en php

PHPz
PHPzoriginal
2023-04-26 09:16:59816parcourir

PHP est un langage de script open source côté serveur populaire largement utilisé dans le domaine du développement Web. Le tableau en PHP est une structure de données très puissante qui prend en charge les tableaux multidimensionnels et peut être utilisée pour stocker et traiter des types de données complexes. Dans le développement réel, nous devons souvent opérer sur des tableaux multidimensionnels, par exemple en supprimant les premiers éléments du tableau.

En PHP, nous pouvons utiliser plusieurs fonctions intégrées pour opérer sur des tableaux multidimensionnels. Ci-dessous, je présenterai quelques méthodes courantes pour réaliser la fonction de suppression des premiers éléments d'un tableau multidimensionnel.

Méthode 1 : Utiliser la fonction array_slice

La fonction array_slice peut supprimer un élément continu d'un tableau et renvoyer un nouveau tableau composé de ces éléments. Sa syntaxe est la suivante :

array array_slice ( array $array , int $offset , int|null $length = null , bool $preserve_keys = false )

Parmi eux, $array représente le tableau d'origine sur lequel opérer ; $offset représente la position à partir de laquelle commencer à prendre la valeur, qui peut être un nombre négatif, indiquant le dernier élément depuis la fin. du tableau pour commencer à prendre la valeur ; $length représente la valeur à prendre. Le nombre d'éléments à supprimer peut être nul, ce qui signifie que tous les éléments de $offset jusqu'à la fin du tableau sont supprimés. $preserve_keys indique ; s'il faut conserver les noms de clés du tableau d'origine. La valeur par défaut est false, ce qui signifie ne pas conserver.

Ce qui suit est un exemple de code qui utilise la fonction array_slice pour supprimer les premiers éléments d'un tableau multidimensionnel :

function array_multi_slice($array, $count) {
    //计算数组的总长度
    $total = count($array, COUNT_NORMAL);
    //如果要取出的元素个数小于等于总长度,则直接通过array_slice函数取值
    if($count <= $total) {
        return array_slice($array, 0, $count, true);
    }
    //否则,需要遍历二维数组取值
    $result = array();
    foreach($array as $key => $value) {
        if($count == 0) break;
        if(is_array($value)) {
            //如果是二维数组,则递归调用array_multi_slice函数取值
            $temp = array_multi_slice($value, $count);
            foreach($temp as $k => $v) {
                $result[$key][$k] = $v;
            }
            $count -= count($temp, COUNT_NORMAL);
        } else {
            //如果是普通数组,则直接取值
            $result[$key] = $value;
            $count--;
        }
    }
    return $result;
}

Dans ce code, nous calculons d'abord la longueur totale du tableau $total si le nombre d'éléments. à supprimer, $count est inférieur à S'il est égal à $total, utilisez directement la fonction array_slice pour obtenir la valeur et renvoyer le résultat. Sinon, nous devons parcourir le tableau à deux dimensions pour obtenir les valeurs.

Lorsque nous parcourons un tableau à deux dimensions, nous déterminons d'abord si l'élément actuel $value est un tableau à deux dimensions. Si tel est le cas, appelons récursivement la fonction array_multi_slice pour extraire la valeur et stocker le résultat dans le tableau $result ; non, stockez directement la valeur. Les éléments sont stockés dans le tableau $result. Pendant le processus de parcours, nous devons continuellement réduire la valeur de $count jusqu'à ce que le nombre d'éléments souhaité soit supprimé.

Méthode 2 : utilisez la fonction array_chunk

La fonction array_chunk peut diviser un tableau en plusieurs blocs en fonction de la taille spécifiée. Chaque bloc forme un nouveau tableau et renvoie un tableau bidimensionnel. Sa syntaxe est la suivante :

array array_chunk ( array $array , int $size , bool $preserve_keys = false )

Parmi eux, $array représente le tableau d'origine à exploiter ; $size représente la taille de chaque bloc ; $preserve_keys représente s'il faut conserver les noms de clés du tableau d'origine. ce qui veut dire ne pas retenir.

Ce qui suit est un exemple de code qui utilise la fonction array_chunk pour supprimer les premiers éléments d'un tableau multidimensionnel :

function array_multi_chunk($array, $count) {
    $temp = array();
    foreach($array as $key => $value) {
        if(is_array($value)) {
            //如果是二维数组,则递归调用array_multi_chunk函数分割
            $result = array_multi_chunk($value, $count);
            foreach($result as $k => $v) {
                if(!isset($temp[$k])) {
                    $temp[$k] = array();
                }
                $temp[$k] += $v;
            }
        } else {
            //如果是普通数组,则直接存储
            $temp[(int)($key/$count)][$key] = $value;
        }
    }
    return $temp;
}

Dans ce code, nous parcourons d'abord le tableau bidimensionnel si l'élément actuel $value est un. tableau bidimensionnel, alors array_multi_chunk est appelé de manière récursive. La fonction est divisée et le résultat est stocké dans le tableau $temp ; s'il s'agit d'un tableau normal, il est directement stocké dans le tableau $temp. Lors du stockage des éléments du tableau, nous déterminons à quel bloc appartient l'élément en calculant $key/$count, et le stockons dans le tableau correspondant.

Enfin, nous renvoyons le tableau $temp. Il convient de noter que lors de la division d'un tableau bidimensionnel, puisque le nombre d'éléments dans chaque sous-tableau n'est pas nécessairement égal, la longueur de chaque sous-tableau peut être différente.

Pour résumer, nous pouvons utiliser la fonction array_slice ou la fonction array_chunk pour supprimer les premiers éléments du tableau multidimensionnel. La sélection spécifique de la méthode doit être déterminée en fonction de la situation réelle.

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