La fonction array_keys() renvoie un tableau des clés d'un tableau, et la fonction array_values() renvoie un tableau des valeurs d'un tableau. Cette 2 fonctions renvoient un tableau à indices numériques consécutifs commençant à 0.

Exemple : clés tableau à indices numériques
<?php require('bib_fonctions.php'); htmlDebut('Clés tableau à indices numériques'); htmlInfo('Clés d\'un tableau à indices numériques'); $ti = array('François', 'Piat', 409); $t = array_keys($ti); infoTableau($t); htmlInfo('Clés d\'un tableau à indices numériques à trous'); $ti[5] = 'francois.piat@univ-fcomte.fr'; $ti[8] = '03 81 60 20 66'; $t = array_keys($ti); infoTableau($t); htmlFin(); ?>
Exemple : clés et valeurs tableau associatif
<?php require('bib_fonctions.php'); htmlDebut('Clés, valeurs tableau associatif'); $ta['B41d'] = 'Pierre'; $ta['C24a'] = 'Paul'; $ta['D12z'] = 'Jacques'; htmlInfo('Clés d\'un tableau associatif'); $t = array_keys($ta); infoTableau($t); htmlInfo('Valeurs d\'un tableau associatif'); $t = array_values($ta); infoTableau($t); htmlFin(); ?>

### Vérifier qu'une clé existe

Comme nous l'avons déjà vu, la fonction isset() permet de savoir si une clé existe dans un tableau. Cette fonction renvoie TRUE si la clé existe dans le tableau, FALSE sinon.

Nous pouvons aussi utiliser la fonction array_key_exists() qui renvoie elle aussi TRUE si la clé existe dans le tableau, FALSE sinon.

Exemple : vérification de clés
<?php require('bib_fonctions.php'); htmlDebut('Tableau à indices numériques:vérification de clés'); $t[0] = 'François'; $t[3] = 'Piat'; $t[6] = 409; infoTableau($t); htmlInfo('Clé 2 avec isset'); if (isset($t[2])) { echo 'Oui'; } else { echo 'Non'; } htmlInfo('Clé 2 avec array_key_exists'); if (array_key_exists(2, $t)) { echo 'Oui'; } else { echo 'Non'; } htmlFin(); ?>

    if (isset($t[2])) {
        echo 'Oui';
    } else {
        echo 'Non';
    }

peut être ré-écrit avantageusement avec l'opérateur de test :

    echo isset($t[2]) ? 'Oui' : 'Non';

On peu évidemment faire la même chose avec le test de array_key_exists
Exemple : vérification de clés
<?php require('bib_fonctions.php'); htmlDebut('Tableau associatif : vérification de clés'); $t['B41d'] = 'Pierre'; $t['C24a'] = 'Paul'; $t['D12z'] = 'Jacques'; infoTableau($t); htmlInfo('Clé "piat" avec isset'); if (isset($t['piat'])) { echo 'Oui'; } else { echo 'Non'; } htmlInfo('Clé "piat" avec array_key_exists'); if (array_key_exists('piat', $t)) { echo 'Oui'; } else { echo 'Non'; } htmlFin(); ?>

### Vérifier qu'une valeur existe

Pour vérifier qu'une valeur existe dans un tableau, surtout nous ne faisons pas notre propre boucle, mais nous utilisons la fonction in_array() qui renvoie TRUE ou FALSE selon que le premier paramètre existe dans le tableau passé en second paramètre.

Exemple : vérification de valeur
<?php require('bib_fonctions.php'); htmlDebut('Vérification de valeurs'); $t = array('Pierre', 'Paul', 'Jacques'); infoTableau($t); if (in_array('Pierre', $t)) { htmlInfo('Pierre OK'); } else { htmlInfo('Pierre pas OK'); } in_array('Jean', $t) ? htmlInfo('Jean Ok') : htmlInfo('Jean Ko'); htmlInfo(in_array('Paul', $t) ? 'Paul Ok' : 'Paul Ko'); htmlFin(); ?>

La fonction array_search() vérifie qu'une valeur existe dans un tableau, et retourne sa clé, ou FALSE si la valeur n'est pas dans le tableau.

Exemple : vérification de valeur
<?php require('bib_fonctions.php'); htmlDebut('Vérification de valeurs'); $ta['B41d'] = 'Pierre'; $ta['C24a'] = 'Paul'; $ta['D12z'] = 'Jacques'; infoTableau($ta); htmlInfo('Bureau de Paul'); echo array_search('Paul', $ta), '<hr>'; $ti = range('a','g'); infoTableau($ti); htmlInfo('Indice de e'); echo array_search('e', $ti); htmlFin(); ?>

Si on veut tester le résultat de la fonction, il faut absolument tester ce résultat avec l'opérateur d'identité === pour ne pas tomber dans le piège du transtypage où 0 == FALSE.

Exemple : vérification de valeur
<?php require('bib_fonctions.php'); htmlDebut('Vérification de valeurs'); $t = range('a', 'd'); infoTableau($t); htmlInfo('"a" est-il dans le tableau ?'); if (array_search('a', $t) == FALSE) { echo 'Non'; } else { echo 'Oui'; } htmlInfo('"a" est-il vraiment dans le tableau ?'); if (array_search('a', $t) === FALSE) { echo 'Non'; } else { echo 'Oui'; } htmlFin(); ?>