Maison développement back-end Problème PHP Le nom de la clé de tri du tableau PHP reste inchangé

Le nom de la clé de tri du tableau PHP reste inchangé

May 05, 2023 pm 09:46 PM

En programmation PHP, nous avons souvent besoin de trier des tableaux. PHP fournit de nombreuses fonctions de tri de tableaux, telles que sort(), asort(), ksort(), etc., qui trient les éléments d'un tableau de différentes manières. Cependant, ces fonctions modifient l'ordre des clés du tableau par défaut. Et si nous voulons conserver l’ordre des clés du tableau ? Cet article vous présentera quelques méthodes.

  1. Utiliser la fonction uksort()

La fonction uksort() est une fonction très puissante en PHP, qui nous permet de définir notre propre fonction de tri et de trier le tableau selon notre méthode. L'utilisation de la fonction uksort() est la suivante :

bool uksort(array &$array, callable $cmp_function)
Copier après la connexion

où $array est le tableau à trier et $cmp_function est la fonction de tri personnalisée.

Dans la fonction de tri personnalisée, nous pouvons utiliser les deux paramètres $a et $b pour comparer deux éléments du tableau et renvoyer le résultat trié. Si $a précède $b, renvoie un entier inférieur à 0 ; si $a précède $b, renvoie un entier supérieur à 0 ; si $a et $b sont égaux, renvoie 0.

Ce qui suit est un exemple de code :

<?php
function my_sort($a, $b) {
    if ($a == $b) {
        return 0;
    }
    return ($a > $b) ? 1 : -1;
}

$array = array(
    'c' => 1,
    'a' => 2,
    'b' => 3,
);
uksort($array, 'my_sort');
print_r($array);
?>
Copier après la connexion

Le code ci-dessus affichera :

Array
(
    [c] => 1
    [a] => 2
    [b] => 3
)
Copier après la connexion
Copier après la connexion
Copier après la connexion

Comme vous pouvez le voir, les noms de clé des éléments du tableau n'ont pas changé. Parmi eux, la fonction my_sort() compare en fonction de la relation de taille des noms de clés.

  1. Utilisez la fonction ksort() et enregistrez les noms de clés

La fonction ksort() est une fonction couramment utilisée en PHP pour trier par noms de clés. Contrairement à sort() et asort(), ksort() change uniquement l'ordre des éléments du tableau sans modifier les noms de clés.

Cependant, nous pouvons également enregistrer le nom de la clé d'origine grâce à quelques astuces. La méthode spécifique est la suivante : stockez d'abord le nom de la clé et la valeur correspondante dans un nouveau tableau, puis triez le nouveau tableau et enfin réaffectez les valeurs triées au tableau d'origine. L'exemple de code est le suivant :

<?php
$array = array(
    'c' => 1,
    'a' => 2,
    'b' => 3,
);

$tmp_array = array();
foreach ($array as $key => $value) {
    $tmp_array[$key] = $value;
}

ksort($tmp_array);

$new_array = array();
foreach ($tmp_array as $key => $value) {
    $new_array[$key] = $value;
}

$array = $new_array;
print_r($array);
?>
Copier après la connexion

Le code ci-dessus affichera :

Array
(
    [c] => 1
    [a] => 2
    [b] => 3
)
Copier après la connexion
Copier après la connexion
Copier après la connexion

Comme vous pouvez le voir, les noms de clé des éléments du tableau n'ont pas changé. Cependant, cette méthode nécessite l'utilisation d'un tableau supplémentaire pour enregistrer les noms de clés d'origine, ce qui peut entraîner des problèmes de mémoire si le nombre d'éléments du tableau est important.

  1. Utilisez la fonction asort() et enregistrez les noms de clés

Semblable à ksort(), la fonction asort() peut également trier par valeur, mais elle modifiera également l'ordre des éléments du tableau.

De même, nous pouvons également enregistrer les noms de clés d'origine grâce à certaines techniques. La méthode spécifique est la suivante : stockez d'abord le nom de la clé et la valeur correspondante dans un nouveau tableau, puis triez le nouveau tableau et enfin réaffectez les valeurs triées au tableau d'origine. L'exemple de code est le suivant :

<?php
$array = array(
    'c' => 1,
    'a' => 2,
    'b' => 3,
);

$tmp_array = array();
foreach ($array as $key => $value) {
    $tmp_array[$key] = $value;
}

asort($tmp_array);

$new_array = array();
foreach ($tmp_array as $key => $value) {
    $new_array[$key] = $value;
}

$array = $new_array;
print_r($array);
?>
Copier après la connexion

Le code ci-dessus affichera :

Array
(
    [c] => 1
    [a] => 2
    [b] => 3
)
Copier après la connexion
Copier après la connexion
Copier après la connexion

Comme vous pouvez le voir, les noms de clé des éléments du tableau n'ont pas changé. De même, cette méthode nécessite également l'utilisation de tableaux supplémentaires pour enregistrer les noms de clés d'origine, ce qui peut entraîner des problèmes de mémoire.

En résumé, les trois méthodes ci-dessus peuvent conserver l'ordre des noms de clés du tableau et vous pouvez choisir en fonction de la situation spécifique. Cependant, il convient de noter que s'il y a des noms de clés en double dans le tableau, les noms de clés peuvent manquer après le tri, et cela doit être géré en fonction de la situation spécifique.

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 de ce site Web
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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

PHP 8 JIT (juste à temps) Compilation: comment cela améliore les performances. PHP 8 JIT (juste à temps) Compilation: comment cela améliore les performances. Mar 25, 2025 am 10:37 AM

La compilation JIT de PHP 8 améliore les performances en compilant le code fréquemment exécuté en code machine, bénéficiant aux applications avec des calculs lourds et en réduisant les temps d'exécution.

Encryption PHP: cryptage symétrique vs asymétrique. Encryption PHP: cryptage symétrique vs asymétrique. Mar 25, 2025 pm 03:12 PM

L'article traite du cryptage symétrique et asymétrique en PHP, en comparant leur aptitude, leurs performances et leurs différences de sécurité. Le chiffrement symétrique est plus rapide et adapté aux données en vrac, tandis que l'asymétrique est utilisé pour l'échange de clés sécurisé.

Authentification PHP & amp; Autorisation: mise en œuvre sécurisée. Authentification PHP & amp; Autorisation: mise en œuvre sécurisée. Mar 25, 2025 pm 03:06 PM

L'article examine la mise en œuvre d'authentification et d'autorisation robustes dans PHP pour empêcher un accès non autorisé, détaillant les meilleures pratiques et recommandant des outils d'amélioration de la sécurité.

OWASP Top 10 PHP: Décrivez et atténue les vulnérabilités communes. OWASP Top 10 PHP: Décrivez et atténue les vulnérabilités communes. Mar 26, 2025 pm 04:13 PM

L'article traite des 10 meilleures vulnérabilités de l'OWASP dans les stratégies PHP et d'atténuation. Les problèmes clés incluent l'injection, l'authentification brisée et les XS, avec des outils recommandés pour surveiller et sécuriser les applications PHP.

Comment récupérer les données d'une base de données à l'aide de PHP? Comment récupérer les données d'une base de données à l'aide de PHP? Mar 20, 2025 pm 04:57 PM

L'article discute de la récupération des données des bases de données à l'aide de PHP, couvrant les étapes, les mesures de sécurité, les techniques d'optimisation et les erreurs communes avec des solutions. COMMANDE CHAPITRE: 159

Protection PHP CSRF: comment empêcher les attaques du CSRF. Protection PHP CSRF: comment empêcher les attaques du CSRF. Mar 25, 2025 pm 03:05 PM

L'article traite des stratégies pour prévenir les attaques du CSRF dans PHP, notamment en utilisant des jetons CSRF, des cookies de même site et une bonne gestion de session.

Quel est le but de mysqli_query () et mysqli_fetch_assoc ()? Quel est le but de mysqli_query () et mysqli_fetch_assoc ()? Mar 20, 2025 pm 04:55 PM

L'article traite des fonctions MySQLI_Query () et MySQLI_Fetch_assoc () en PHP pour les interactions de la base de données MySQL. Il explique leurs rôles, leurs différences et fournit un exemple pratique de leur utilisation. L'argument principal se concentre sur les avantages de l'USIN

Téléchargements de fichiers sécurisés PHP: prévention des vulnérabilités liées au fichier. Téléchargements de fichiers sécurisés PHP: prévention des vulnérabilités liées au fichier. Mar 26, 2025 pm 04:18 PM

L'article traite de la sécurisation des téléchargements de fichiers PHP pour éviter les vulnérabilités comme l'injection de code. Il se concentre sur la validation du type de fichier, le stockage sécurisé et la gestion des erreurs pour améliorer la sécurité de l'application.

See all articles