Cours par Webcam

Cours par Webcam

Formateur Web pour adultes depuis plus 11 ans, je vous propose des COURS collectifs par WEBCAM en LIVE pour booster vos connaissances et être autonome dans la création de site.

En savoir plus

PHP - Bases

PHP - Algorithmie

PHP - Chaîne

PHP - Tableau

PHP - Formulaires

PHP - Fonctions Usuelles

Données entres pages

Environnement et Interaction

PHP objet (POO)

Facebook
Twitter
LinkedIn

Tableau : conversion de valeurs

En PHP, il est courant d’extraire des sous-parties d’un tableau, de les convertir en variables, de convertir un tableau en chaîne ou faire l’opération inverse, ou encore de remplacer des anciennes valeurs d’un tableau par des nouvelles.

Conversion en variables

Pour récupérer les valeurs d’un tableau et les convertir en variables, utilisez la fonction list(). Elle prend en paramètres une liste de variables. La première variable récupère la première valeur, la seconde se verra affecter la valeur suivante, etc..

1
2
3
4
5
<?php
$tab = array('daniel','isabelle','david','robert', 'antoine');
list($nom1, $nom2, $nom3, $nom4, $nom5) = $tab;
echo $nom1."----".$nom5;
?>

Affichage

daniel ---- antoine

Si le tableau est associatif, utilisez la fonction extract() à la place de la fonction list().

1
2
3
4
5
<?php
$tab = array('nom' =>'daniel','age' =>30,'taille' => 170);
extract($tab);
echo $nom." - ".$age;
?>

Affichage

daniel - 30

Gérer les collisions

Pour éviter une collision (une variable créée par la fonction extract() peut porter le même nom qu’une variable existante), vous pouvez utilisez un deuxième paramètre dont les valeurs possibles sont:

  • EXTR_OVERWRITE : lors d’une collision, réécrire la variable existante.
  • EXTR_SKIP : lors d’une collision, ne pas réécrire la variable existante.
  • EXTR_PREFIX_SAME : lors d’une collision, ajouter le préfixe prefix, et créer une nouvelle variable.
  • EXTR_PREFIX_ALL : ajouter le préfixe prefix pour toutes les variables.
  • EXTR_PREFIX_INVALID : préfixer uniquement les variables aux noms invalides ou numériques avec le préfixe prefix.
  • EXTR_IF_EXISTS : ecrase la variable uniquement si elle existe déjà dans la table des symboles, et, sinon, ne rien faire. Ceci est pratique pour définir une liste de variables valides, puis extraire du tableau les valeurs que vous avez déjà définies grâce à $_REQUEST, par exemple.
  • EXTR_PREFIX_IF_EXISTS : ne crée que des variables préfixées, si la version non préfixée de la même variable existe dans la table des symboles courante.
  • EXTR_REFS : extrait les variables sous forme de références. Cela signifie que les valeurs des variables importées font toujours référence aux valeurs des variables d’origine dans le paramètre array. Vous pouvez utiliser cette option seule, ou bien la combiner avec d’autres options avec l’opérateur OR, dans le deuxième paramètre.
1
2
3
4
5
6
7
8
<?php
$nom = 'david';
$tab = array('nom' =>'daniel','age' =>30,'taille' => 170);
extract($tab,EXTR_PREFIX_SAME,'prefix');
echo $nom." - ".$age;
echo '<br>';
echo $prefix_nom." - ".$age;
?>

Affichage

david - 30
daniel - 30

Dans cet exemple, PHP a rajoutée la valeur ‘prefix_’ devant la clé ‘nom’ du tableau. Si le deuxième paramètre est omis, extract() utilisera EXTR_OVERWRITE par défaut.

Sérialisation de tableaux

Une opération utile consiste à convertir les valeurs d’un tableau en chaîne. La fonction implode() prend en paramètres une chaîne séparatrice et un tableau.

1
2
3
4
5
<?php
$tab = array('daniel','isabelle','david','robert', 'antoine');
$chaine = implode("-",$tab);
echo $chaine;
?>

Affichage

daniel-isabelle-david-robert-antoine

La fonction explode() est l’opération inverse qui consiste à séparer une chaîne pour former un tableau. Elle prend en paramètres un séparateur et une chaîne.

1
2
3
4
5
<?php
$chaine = 'daniel-isabelle-david-robert-antoine'
$tab = explode('-',$tab);
print_r($tab);
?>

Affichage

Array ( [0] => daniel [1] => isabelle [2] => david [3] => robert [4] => antoine )

A lire aussi

tutowebdesign

Afficher du contenu au scroll

Afficher du contenu au scroll Voici un effet impressionnant et pourtant très facile à mettre en place sur vos pages. Le principe consiste à faire

Lire »