Maison >développement back-end >Problème PHP >méthode d'inversion du tableau php

méthode d'inversion du tableau php

PHPz
PHPzoriginal
2023-05-11 10:55:063004parcourir

Cet article présentera la méthode d'inversion de tableau php.

En PHP, le tableau est l'un des types de données les plus courants, qui peut stocker plusieurs valeurs. La mise en œuvre de l'opération d'inversion d'un tableau est l'une des exigences courantes. Ce qui suit montre plusieurs méthodes différentes pour implémenter l'opération d'inversion du tableau php.

Méthode 1 : fonction array_reverse()

PHP fournit une fonction intégrée array_reverse() pour inverser le tableau. Cette fonction renvoie un nouveau tableau dans lequel les éléments du tableau d'origine sont disposés dans l'ordre inverse. Par exemple :

$arr = array(1, 2, 3, 4, 5);
$reversedArr = array_reverse($arr);
print_r($reversedArr);

Le résultat de l'exécution du code ci-dessus est :

Array
(
    [0] => 5
    [1] => 4
    [2] => 3
    [3] => 2
    [4] => 1
)

Cette fonction peut également choisir de conserver ou de réinitialiser le nom de clé du tableau. Le deuxième paramètre est facultatif et sa valeur par défaut est false, ce qui signifie que le nom de la clé n'est pas conservé. Si la valeur est vraie, le nom de la clé est conservé.

$arr = array("one" => 1, "two" => 2, "three" => 3, "four" => 4, "five" => 5);
$reversedArr = array_reverse($arr, true);
print_r($reversedArr);

Le résultat de sortie est :

Array
(
    [five] => 5
    [four] => 4
    [three] => 3
    [two] => 2
    [one] => 1
)

Méthode 2 : boucle for

L'opération d'inversion de tableau peut également être implémentée à l'aide de la boucle for. Nous pouvons utiliser deux pointeurs, un au début et un à la fin du tableau, déplacer les deux pointeurs dans une boucle et échanger les éléments en conséquence. L'implémentation spécifique est la suivante :

$arr = array(1, 2, 3, 4, 5);
$len = count($arr);
for ($i = 0; $i < $len / 2; $i++) {
    $temp = $arr[$i];
    $arr[$i] = $arr[$len - $i - 1];
    $arr[$len - $i - 1] = $temp;
}
print_r($arr);

Le résultat de sortie est :

Array
(
    [0] => 5
    [1] => 4
    [2] => 3
    [3] => 2
    [4] => 1
)

Méthode 3 : utilisez la fonction array_reduce() et le nom de la clé du tableau inversé

Nous pouvons également utiliser la fonction array_reduce() pour inverser le tableau. La fonction array_reduce() accepte un tableau itérable et peut utiliser des fonctions de rappel pour effectuer des opérations telles que la sommation, le filtrage et la transformation sur chaque élément. Voici un exemple d'inversion de tableau :

$arr = array(1, 2, 3, 4, 5);
$reversedArr = array_reduce(array_keys($arr), function ($acc, $key) use ($arr) {
    $acc[$key] = $arr[count($arr) - 1 - $key];
    return $acc;
}, []);
print_r($reversedArr);

Le résultat de sortie est :

Array
(
    [0] => 5
    [1] => 4
    [2] => 3
    [3] => 2
    [4] => 1
)

Le code ci-dessus utilise la fonction array_keys() pour obtenir le nom de clé du tableau et le transmet comme premier paramètre à array_reduce(). fonction, de sorte que Utilisé dans l'implémentation de la fonction de rappel. La fonction de rappel suivante utilise le nom de la clé pour calculer l'index inverse du tableau, inversant ainsi le tableau. Le paramètre $acc est un accumulateur dont la valeur est toujours un tableau, la valeur initiale étant le tableau vide [].

Comme vous pouvez le voir, utiliser la fonction array_reduce() pour réaliser l'inversion de tableau est quelque peu compliqué. Mais cette fonction est très utile lorsqu’il s’agit d’autres opérations sur les tableaux.

Méthode 4 : Utilisez les fonctions array_multisort() et array_column()

La dernière façon d'implémenter l'opération d'inversion de tableau consiste à utiliser les fonctionnalités de PHP pour traiter des tableaux multidimensionnels. Nous pouvons d’abord utiliser la fonction array_multisort() pour trier les index pairs et impairs indépendants dans l’ordre inverse en fonction de l’index du tableau. Ensuite, utilisez la fonction array_column() pour reconvertir le tableau en un seul tableau. L'implémentation spécifique est la suivante :

$arr = array(1, 2, 3, 4, 5);
$n = count($arr);
for ($i = 0; $i < $n; $i++) {
    if ($i % 2 == 0) {
        $even[] = $arr[$i];
    } else {
        $odd[] = $arr[$i];
    }
}
array_multisort(array_reverse($odd), SORT_NUMERIC, array_reverse($even), SORT_NUMERIC);
$reversedArr = array_column(array($even, $odd), 0);
print_r($reversedArr);

Le résultat de sortie est :

Array
(
    [0] => 5
    [1] => 4
    [2] => 3
    [3] => 2
    [4] => 1
)

Le code ci-dessus stocke l'index impair et l'index pair dans deux tableaux $impair et $pair respectivement. Ensuite, utilisez la fonction array_multisort() pour trier les deux tableaux dans l'ordre inverse, et enfin utilisez la fonction array_column() pour convertir le tableau bidimensionnel en un seul tableau.

Résumé

Cet article traite de quatre méthodes différentes pour implémenter l'opération d'inversion de tableau PHP. Parmi elles, la fonction array_reverse() est la méthode la plus simple et la plus directe. La méthode de la boucle for est relativement simple à utiliser, mais pas aussi efficace que la fonction array_reverse(). Implémenter l'inversion de tableau à l'aide de la fonction array_reduce() est relativement complexe, mais la fonction est très utile lorsque vous travaillez avec d'autres opérations sur les tableaux. Enfin, nous montrons une approche basée sur les fonctions array_multisort() et array_column() pour implémenter des opérations d'inversion de tableaux en tirant parti des capacités de PHP pour gérer les tableaux multidimensionnels.

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