8722 sujets

Développement web côté serveur, CMS

Bonjour,
tout d'abord voici mon premier post dans cette communauté, merci de m'accueillir.

Je souhaite trouver des valeurs d'un premier tableau dans le second, exemple :

Je rempli mon 1er tableau qui contient le nom du produit à comparer :

while ($a = fetch_assoc($query)) {
	$phrase = $a['nom'];
}
$tab_mot = $phrase;

if (!empty($tab_mot)) {
$test = explode(' ',$tab_mot);

donne :

array
  0 => string 'Pompe' (length=5)
  1 => string 'autoamorçante' (length=14)
  2 => string 'BG' (length=2)
  3 => string '9' (length=1)


Maintenant vois le deuxième tableau :

while ($q = fetch_assoc($query)) {
$tab_liste_prod[] = explode(' ',$q['nom']); // C'est ici que je ne sais pas remplir ce tableau
}

donne :

array
  0 => 
    array
      0 => string 'Pompe' (length=5)
      1 => string 'périphérique' (length=14)
      2 => string 'de' (length=2)
      3 => string 'transfert' (length=9)
      4 => string 'P21/A' (length=5)
  1 => 
    array
      0 => string 'Pompe' (length=5)
      1 => string 'autoamorçante' (length=14)
      2 => string 'BGM' (length=3)
      3 => string '3' (length=1)
      4 => string 'Garden' (length=6)
  2 => 
    array
      0 => string 'Pompe' (length=5)
      1 => string 'autoamorçante' (length=14)
      2 => string 'à' (length=2)
      3 => string 'anneau' (length=6)
      4 => string 'liquide' (length=7)
      5 => string 'SP5' (length=3)


ensuite j'utilise array_intersect pour rechercher dans le premier les mêmes valeurs que le deuxième :

$result = array_intersect($test,$tab_liste_prod);


et ici je me retrouve avec un tableau $result vide !

array
  empty


Je pense que c'est mon deuxième tableau qui n'est pas correct, si vous pouvez me proposer quelque chose, je vous en serai reconnaissant.

Merci
Modifié par heb (30 Oct 2013 - 10:16)
Tu ne peux pas faire un array intersect sur les deux tableau, vu que le premier est un tableau d'éléments, et le second un tableau de tableaux d'éléments.

Il faut parcourir le second tableau avec un foreach :

$resultats = array();
foreach($tab_liste_prod as $prod) {
	$intersect = array_intersect($test,$prod);
	$resultats = array_merge($resultats, $intersect);
}
print_r($resultats);


J'ai pas testé le code Smiley cligne
Modifié par JulienArcin (02 Nov 2013 - 09:59)
Bonjour,
Merci de ta réponse.
A mon niveau, on se plait à me répondre par des démonstrations complexes que si je pouvais comprendre cela m'éviterais de poster.

Merci à toi