Rechercher : dans
Par :

[php] Concaténation array clef et valeur

Dernière réponse le 19 jui 2007 à 00:32:13 Ialp, le 9 mai 2006 à 18:35:40 
 Signaler ce message aux modérateurs

Bonjour,

J'ai un petit problème pour concaténer un tableau dans une boucle, seulement les valeurs, ça je sais faire, mais avec valeur et clef, je n'ai pas trouvé comment faire.

Exemple parlant de ce que je veux obtenir :

for($i=0; $i<5; $i++)
{
    $array[] .= "clef $i" => "$valeur $i";
}


Bien entendu, j'ai un parse error.

Quelle est la syntaxe pour faire ça ?

Merci.

Meilleures réponses pour « [php] Concaténation array clef et valeur » dans :
PHP - Concaténation Voir PHP permet de concaténer des chaînes de caractères grâce à l'opérateur "." : $concatenation= $a . $b; Ou encore pour affecter, dans la variable $a, la valeur de la concaténation de $a et de $b : $a.=$b; Pour concaténer des chaînes et des...
[PHP] Méthodes de débogage VoirI. Informations sur une variable I.1 echo I.2 print_r() I.3 var_dump() / var_export() I.4 Rediriger la sortie (ne pas afficher à l'écran) II. "Backtrace" ou rapport de contexte III. Bien utiliser les rapports d'erreur IV. Le mot clé...
PHP - Les fonctions VoirLa notion de fonction On appelle fonction un sous-programme qui permet d'effectuer un ensemble d'instructions par simple appel de la fonction dans le corps du programme principal. Les fonctions permettent d'exécuter dans plusieurs parties du...
PHP - Les variables VoirConcept de variable avec PHP Une variable est un objet repéré par son nom, pouvant contenir des données, qui pourront être modifiées lors de l'exécution du programme. Les variables en langage PHP peuvent être de trois...
Javascript - Les tableaux VoirIntroduction à la notion de tableau Les variables de Javascript ne permettent de stocker qu'une seule donnée à la fois. Or, étant donné qu'il est souvent utile de manipuler de nombreuses données, le concept de variable se révéle parfois...

1

PhP, le 9 mai 2006 à 21:39:25

Bsr

Pas sûr de bien comprendre ...

Tu ne peux pas concaténer un tableau !

Tu peux initialiser un tableau dans une bcl par ex


<?php
$array = array();
for($i=0; $i<5; $i++)
{
    $array["clef ".$i] = "valeur ".$i;
}
?>



ou encore manipuler les clés et les valeurs en les stockant dans une chaîne par ex

<?php
$str="";

foreach($array as $key => $value)
{
	$str .= "Clé ".$key." => Valeur ".$value."\n";
}
?>
<pre>
<?php  var_dump($str); ?>
</pre>


je ne vois pas bien ce que tu veux faire ...



@+
PHP

Répondre à PhP

2

Ialp, le 9 mai 2006 à 23:23:41

Slt,

Oui, en fait, je me suis mal exprimé.

Ce que je désire, c'est construire un tableau key et value dans une boucle.

Par exemple en extrayant des données d'une table et en affectant le 1er champ à la clef, et le second à la valeur, donc un truc du style :

$req = mysql_query("SELECT champ1, champ2 FROM table");
while( $donnees = mysql_fetch_assoc($req) )
{
    $tableau[] .= $donnees['champ1'] => $donnees['champ2'];  // ceci est incorrect
}


De façon à obtenir au final un tableau clef et valeur :

$tableau = ('clef0' => 'valeur0',
            'clef1' => 'valeur1',
            'clef2' => 'valeur2',
            'clef3' => 'valeur3',
            'clef4' => 'valeur4');


J'espère que c'est plus clair :D

Répondre à Ialp

3

PhP, le 11 mai 2006 à 00:14:18

Bsr

D'abord sache que si ta table comporte les champs "per_nom", "pre_prenom","per_matricule'
alors le simple fait d'éxécuter :

$req = mysql_query("SELECT champ1, champ2 FROM table");
$donnees = mysql_fetch_assoc($req) ;

tu retournes déjà :
$donnees["per_nom"] = "nom 1"
$donnees["per_prenom"] = "prénom 1"
$donnees["per_matricule"] = "00001"

C'est pas déjà ce que tu veux ?

Ou alors tu veux stocker toutes les lignes retournées par ta requête dans un "gros" tableau ?

Gaffe ca risque de bouffer pas mal de ressource si ta requête retourne beaucoup de ligne


Essai toujours :

$tableau = array();
$req = mysql_query("SELECT champ1, champ2 FROM table");
while( $donnees = mysql_fetch_assoc($req) )
{
    $tableau[] = $donnees;
}

PhP 

Répondre à PhP

4

crewstyle, le 9 oct 2006 à 20:44:07

Bonsoir tout le monde ;) :)
Alors, pour récupérer les données d'une requête SQL dans un tableau, c'est OK ;) (merci PhP :))

Imaginons qu'après ceci, j'ai une autre requête SQL !
Comment faire pour CONTINUER à remplir le tableau précédament créé par les nouvelles valeurs de cette 2nde requete ?



Exemple au cas où ...

req1 = mysql_query("SELECT champ1, champ2 FROM table WHERE champ1='titi' ");
while( $donnees1 = mysql_fetch_assoc($req1) )
{
    $tableau[] = $donnees1;
}

// Ensuite ...

req2 = mysql_query("SELECT champ1, champ2 FROM table WHERE champ1='toto' ");
while( $donnees2 = mysql_fetch_assoc($req2) )
{
    // J'aimerai donc CONTINUER à remplir le tableau avec ces nouvelles valeurs !!
    // La syntaxe qui suit est donc fausse !!
    $tableau[] = $donnees2;
}

Répondre à crewstyle

5

RLV, le 15 jan 2007 à 19:21:54

Salut,

$tableau[] .= $donnees2

ca le fait pas ? pour un chaine de caractere ca fonctionne a 100%.Pour un tableau on peux toujour essayer :-)

Répondre à RLV

6

Lascar, le 5 jun 2007 à 04:15:14

C'est tiré par les cheuveux mais ca marche...
Ca s'appelle la variable variable.. non non vous ne voyez pas double. Par contre il est necessaire de savoir combien de réponses nous aurons :/

req1 = mysql_query("SELECT champ1, champ2 FROM table WHERE champ1='titi' ");
$compt=0;
while( $donnees1 = mysql_fetch_assoc($req1) )
{
${'tableau'.$compt} = array($donnees1['champ1'],$donnees['champ2']);
$compt++
}
//Concaténation des tableaux dans un 'super-tableau'
$supertableau = array($tableau1,$tableau2,....,$tableaun);


voilà j'espère que ca t'aide au moins un ptit peu

Répondre à Lascar

7

 Torajio, le 19 jui 2007 à 00:32:13

Pour avoir un seul et même array pour deux requêtes, il y a mieux :

$requete1 = mysql_query('Requête 1');
$requete2 = mysql_query('Requête 2');

$tableau1 = mysql_fetch_assoc($requete1);
$tableau2 = mysql_fetch_assoc($requete2);

$tableau = array_merge($tableau1, $tableau2);

Répondre à Torajio