Position actuelle: Accueil> Derniers articles> Utilisez Array_Column et Array_Search pour trouver des index d'enregistrement

Utilisez Array_Column et Array_Search pour trouver des index d'enregistrement

M66 2025-04-28

Dans la programmation PHP, les tableaux sont des structures de données très couramment utilisées. Souvent, vous rencontrerez des scénarios où vous devez trouver l'index d'un élément spécifique d'un tableau. Heureusement, PHP fournit des fonctions très utiles telles que Array_Column et Array_Search pour nous aider à effectuer de telles opérations efficacement. Cet article expliquera comment utiliser ces deux fonctions pour trouver l'indice d'un enregistrement de tableau.

1. Quelle est la fonction Array_Column ?

La fonction Array_Column est un outil utilisé par PHP pour extraire des colonnes spécifiques à partir de tableaux multidimensionnels. Il nous permet de spécifier une colonne, d'extraire toutes les valeurs de la colonne et de renvoyer un nouveau tableau contenant toutes les valeurs de la colonne.

grammaire:

 array_column(array $array, mixed $column_key, mixed $index_key = null): array
  • $ Array : le tableau multidimensionnel d'entrée.

  • $ Column_Key : Le nom de clé de la colonne à extraire (si chaque élément du tableau est un tableau associatif).

  • $ index_key : paramètre facultatif, spécifiant la clé dans le nouveau tableau. S'il n'est pas fourni, le tableau retourné utilisera les clés du tableau d'origine.

Exemple de code:

Supposons que nous ayons un tableau avec plusieurs enregistrements, chaque enregistrement est un tableau associatif, et nous voulons extraire toutes les valeurs de la colonne d'ID à partir de ces enregistrements.

 $records = [
    ['id' => 1, 'name' => 'Alice', 'email' => 'alice@m66.net'],
    ['id' => 2, 'name' => 'Bob', 'email' => 'bob@m66.net'],
    ['id' => 3, 'name' => 'Charlie', 'email' => 'charlie@m66.net']
];

// utiliser array_column extrait id Liste
$ids = array_column($records, 'id');

print_r($ids);

Résultat de sortie:

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

Avec Array_Column , nous avons réussi à extraire les colonnes ID de tous les enregistrements du tableau.

2. Quelle est la fonction Array_Search ?

La fonction Array_Search est utilisée pour rechercher une valeur dans un tableau et renvoyer l'index de la valeur dans le tableau. Lorsqu'il est utilisé avec Array_Column , il peut nous aider à trouver l'index d'un enregistrement spécifique.

grammaire:

 array_search(mixed $needle, array $haystack, bool $strict = false): int|string|false
  • $ aiguille : la valeur que nous recherchons.

  • $ Haystack : Le tableau à rechercher.

  • $ strict : paramètre facultatif, s'il faut effectuer une comparaison stricte (la valeur par défaut est fausse , c'est-à-dire effectuer une comparaison non stricte).

Exemple de code:

Supposons que nous ayons un tableau avec plusieurs enregistrements et que nous voulons trouver l'index de l'enregistrement dont le nom est Bob .

 $records = [
    ['id' => 1, 'name' => 'Alice', 'email' => 'alice@m66.net'],
    ['id' => 2, 'name' => 'Bob', 'email' => 'bob@m66.net'],
    ['id' => 3, 'name' => 'Charlie', 'email' => 'charlie@m66.net']
];

// utiliser array_column extrait所有的 name Liste
$names = array_column($records, 'name');

// Trouver name pour 'Bob' Index
$index = array_search('Bob', $names);

echo "Bob Index是: $index";  // Sortir: Bob Index是: 1

3. Utilisez Array_Column et Array_Search pour trouver l'index de l'enregistrement complet

Si nous voulons trouver un enregistrement complet qui répond à une certaine condition, nous pouvons d'abord utiliser Array_Column pour extraire la colonne qui nous intéresse (telle que la colonne de nom ), puis utilisez Array_Search pour trouver l'index correspondant à la valeur de cette colonne, puis utilisez cet index pour retourner l'enregistrement.

Exemple de code:

 $records = [
    ['id' => 1, 'name' => 'Alice', 'email' => 'alice@m66.net'],
    ['id' => 2, 'name' => 'Bob', 'email' => 'bob@m66.net'],
    ['id' => 3, 'name' => 'Charlie', 'email' => 'charlie@m66.net']
];

// extrait所有 name Liste
$names = array_column($records, 'name');

// Trouver name pour 'Charlie' Index
$index = array_search('Charlie', $names);

// Revenir au record complet
if ($index !== false) {
    $record = $records[$index];
    print_r($record);
}

Résultat de sortie:

 Array
(
    [id] => 3
    [name] => Charlie
    [email] => charlie@m66.net
)

Dans cet exemple, nous extrons toutes les valeurs des noms via Array_Column , puis utilisons Array_Search pour trouver l'indice correspondant de Charlie , et enfin obtenons l'enregistrement complet via cet index.

Ce qui précède est la méthode de base pour trouver des index d'enregistrement dans PHP à l'aide des fonctions Array_Column et Array_Search . Ces deux fonctions sont des outils très utiles lorsqu'ils traitent des tableaux multidimensionnels, ce qui peut simplifier considérablement les opérations de recherche. Si vous avez affaire à des structures de données complexes, essayez ces méthodes.

J'espère que cet article vous est utile! Si vous avez des questions ou avez besoin d'aide supplémentaire, n'hésitez pas à poser des questions.