Que dois-je faire si PHP n'affiche pas la clé du tableau à deux dimensions ?

PHPz
Libérer: 2023-04-12 10:08:33
original
478 Les gens l'ont consulté

Dans le développement PHP, les tableaux sont le type de données le plus courant. Nous devons souvent les utiliser, notamment obtenir la valeur du tableau, modifier, ajouter, supprimer et d'autres opérations. Dans les opérations sur les tableaux, la clé et la valeur sont des concepts très importants, car nous utilisons des clés pour rechercher et exploiter les données dans le tableau. Mais parfois, nous constatons que notre programme ne génère pas les clés du tableau comme prévu. Pourquoi ?

Description du problème :

En PHP, lors de la sortie de la clé d'un tableau bidimensionnel, la clé peut ne pas s'afficher normalement. Voici un exemple simple :

<?php
$arr = array(
  array(&#39;name&#39;=>'Jack', 'age'=>20),
  array('name'=>'Lucy','age'=>18),
);
 
foreach($arr as $key => $value){
   echo $key."</br>";
}
?>
Copier après la connexion

Le résultat attendu est :

0
1
Copier après la connexion
Copier après la connexion

Mais le résultat réel est :

name
age
name
age
Copier après la connexion

Cela montre que le programme actuel ne génère pas la clé du tableau comme prévu. Alors quelle est la raison de ce problème ?

Cause du problème :

La fonction de la clé du tableau est de marquer la valeur correspondante. Cependant, en fait, la clé dans le tableau à deux dimensions n'est pas une séquence commençant à 0, mais une chaîne. Par exemple, le tableau $arr ci-dessus, dont les clés sont 0 et 1, est le tableau suivant :

array('name'=>'Jack', 'age'=>20)

array('name'=>'Lucy','age'=>18)
Copier après la connexion

Les sorties "name" et "age" sont les clés de chaîne du tableau à deux dimensions.

Problème résolu :

Alors, comment pouvons-nous produire la clé numérique que nous voulons ? Deux solutions sont recommandées ici :

Solution 1 : Utiliser une boucle for pour sortir la clé

Utiliser une boucle for pour sortir la clé est une méthode simple et directe Nous pouvons sortir la clé numérique correspondante via une boucle. Par exemple :

<?php
$arr = array(
  array(&#39;name&#39;=>'Jack', 'age'=>20),
  array('name'=>'Lucy','age'=>18),
);
 
for($i=0; $i<count($arr); $i++){
   echo $i."</br>";
}
?>
Copier après la connexion

Cela affichera parfaitement la touche numérique souhaitée, et le résultat est :

0
1
Copier après la connexion
Copier après la connexion

Solution 2 : utilisez la fonction array_keys

La fonction array_keys est une fonction intégrée en PHP, qui peut renvoyer toutes les clés dans une valeur de tableau, combinée avec la fonction de longueur de tableau count(), nous pouvons facilement afficher la clé numérique. Par exemple :

<?php
$arr = array(
  array(&#39;name&#39;=>'Jack', 'age'=>20),
  array('name'=>'Lucy','age'=>18),
);
 
print_r(array_keys($arr))."</br>";
 
for($i=0; $i<count($arr); $i++){
   echo $i."</br>";
}
?>
Copier après la connexion

De cette façon, nous pouvons également afficher le résultat attendu "0, 1".

Résumé :

L'utilisation de tableaux en PHP est une opération très courante lors de l'utilisation de tableaux, nous devons comprendre les fonctions et les relations entre la clé et la valeur du tableau. Lorsque nous obtenons des résultats qui ne correspondent pas aux attentes, ne vous inquiétez pas et réfléchissez davantage à l'analyse des solutions au problème. C'est également une bonne occasion d'améliorer vos compétences en programmation et votre pensée logique.

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!

source:php.cn
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal