8722 sujets

Développement web côté serveur, CMS

Bonjour,

Voilà, j'ai une table dans laquelle j'ai entré des infos comme suit dans des colonnes:
equipe: nom1|nom2|nom3|nom4
type: type1|type2|type3|type4

Dans ma page j'appel les donnée avec un explode comme ça:
$equipe = explode('|', $info['equipe']);
$type = explode('|', $info['type'])


Ensuite je fait l'affichage comme ça:
if(!empty($equipe)){
	echo '<p class="team">';
	foreach($equipe as $a) {
		echo(stripslashes($a).'<br>');
	}
	echo '</p>';
}

Et donc ça m'affiche comme ça
nom1
nom2
...


Jusque là tout va bien, seulement j'aimerais de combiner les infos des 2 colonnes
J'ai essayé avec array_merge mais l'affichage ne se fais pas comme j'aimerais, ça fais plutôt ça:
nom1
nom2
...

type1
type2
...


Alors que j'aimerais comme ça:
nom1 (type1)
nom2 (type2)
...

J'essaie avec une array_combine, mais ça me renvoie une erreur.
if(!empty($equipe)){
	$equipe2 = array_combine($equipe, $type);
	echo '<p class="team">';
	foreach($equipe2 as $a) {
		echo(stripslashes($a).'<br>');
	}
	echo '</p>';
}

Modifié par juliesunset (28 Nov 2012 - 21:38)
Modérateur
Salut,

J'ai pas tout à fait saisi. Ce que j'ai compris est que tu as deux tableaux en sortie et que tu veux ASSOCIER la valeur d'un tableau à une autre. Si c'est bien cela, crée un tableau associatif. ex : La clef c'est le type, le nom c'est la valeur.

Est ce que le nombre de valeur est le même dans les deux tableaux ?

<<<EDIT;


<?php
    $info['equipe'] = 'nom1|nom2|nom3|nom4';
    $info['type'] = 'type1|type2|type3|type4';
    
    
    print_r(array_combine(explode('|', $info['equipe']), explode('|', $info['type'])));


;)

EDIT;
Modifié par niuxe (28 Nov 2012 - 20:12)
juliesunset a écrit :
J'essaie avec une array_combine, mais ça me renvoie une erreur.

Qui est ?
J'imagine que c'est sur stripslashes ?

$size = count($equipe);

for ($i = 0; $i < $size; $i++) {
  echo $equipe[$i] . '(' . $type[$i] . ')';
}

Modifié par jb_gfx (28 Nov 2012 - 20:11)
Modérateur
@jb_gfx : J'ai de suite penser à ton code. Cependant, on ne connait pas encore le tenant et aboutissant. Sinon d'une manière générale je plussoie.
Merci pour vos réponse!

Bon j'ai essayé la solution proposé par Jb_gfx, j'avais fais quelque chose de semblable à l'origine, mais je n'arrivais pas à couplé les données. En faisant qui dit, seule la première combinaison apparaît.
$size = count($equipe);
	for($i = 0; $i < count($size); $i++){
		echo $equipe[$i].'('.$type[$i].')<br>';
}


Ensuite celle de niuxe, mais j'ai "adapté selon ce qui était déjà indiqué:
$equipe = explode('|', $info['equipe']);
$type = explode('|', $info['type'])

if(!empty($equipe)){
	print_r(array_combine($equipe, $type));
}

voilà ce que ça affiche:
Array ( [nom1] => type1 [nom2] => type2 ) 

À partir de là je n'arrive pas à faire une "mise en page" correct...
Modifié par juliesunset (28 Nov 2012 - 20:56)
juliesunset a écrit :

Bon j'ai essayé la solution proposé par Jb_gfx, j'avais fais quelque chose de semblable à l'origine, mais je n'arrivais pas à couplé les données. En faisant qui dit, seule la première combinaison apparaît.


Normal, dans ta boucle tu refais un count($size) qui n'a pas lieu d'être. Reprend le code que je t'ai donné et tu verra que ça fonctionne bien.