Affichage en infinité de fois
emmanuelle_
Messages postés
48
Statut
Membre
-
jeremy.s Messages postés 1248 Statut Membre -
jeremy.s Messages postés 1248 Statut Membre -
Bonjour,
j'ai besoin de comparer 2 tableaux multidimensionnel
voici mon code :
foreach( $tab1 as $key11 => $val1) {
foreach( $val1 as $key111 => $val2) {
foreach( $val2 as $key1 => $val) {
foreach($tab as $keyy=>$value1){
foreach($value1 as $keyyy=>$value2){
foreach($value2 as $key=>$value){
if($val!==$value){
echo $val
}
}
}
}
}
}
pour juste affiche ceux qui sont pas en commun mais il les affiche en infinité de fois je ne sais pas pourquoi; :(:(:(
Merci pour votre aide
j'ai besoin de comparer 2 tableaux multidimensionnel
voici mon code :
foreach( $tab1 as $key11 => $val1) {
foreach( $val1 as $key111 => $val2) {
foreach( $val2 as $key1 => $val) {
foreach($tab as $keyy=>$value1){
foreach($value1 as $keyyy=>$value2){
foreach($value2 as $key=>$value){
if($val!==$value){
echo $val
}
}
}
}
}
}
pour juste affiche ceux qui sont pas en commun mais il les affiche en infinité de fois je ne sais pas pourquoi; :(:(:(
Merci pour votre aide
A voir également:
- Affichage en infinité de fois
- Affichage double ecran - Guide
- Windows 11 affichage classique - Guide
- Problème affichage page internet google chrome ✓ - Forum Google Chrome
- Paiement 4 fois cdiscount impossible ✓ - Forum Consommation & Internet
- Téléphone sonne 1 fois puis messagerie - Forum Mobile
3 réponses
Salut,
On pourrai résumer ce que fais avec deux tableaux simples :
Ici mes tableaux possèdent donc deux différences.
Toi tu fais ça :
1/ Tu prends le "1" du premier tableau et tu le compares à tout le 2e. Il y est une fois dans le deuxième donc ici on va afficher "1111".
2/ Tu prends le "2" [...] : "2222".
3/ Tu prends le "3" [...] : "3333".
4/ Tu prends le "4" [...] : "44444".
5/ TU prends le "5" [...] : "555555".
Toi tu fais pareil mais avec des tableaux à 3 dimensions. Au finale, tu n'affiches pas les clés qui sont en différence, mais tu affiches une clé du premier tableau à chaque fois qu'elle n'est pas la même que n'importe quelle clé du 2e tableau.
En gros, si ton premier tableau ne contient 100 fois "1" et que ton 2e contient 99 fois "0" et une fois "1" alors ton script va t'afficher 100*99 = 9900 fois "1". Tu me suis ?
Mais que veux-tu faire exactement ?
On pourrai résumer ce que fais avec deux tableaux simples :
$tab1 = array(1, 2, 3, 4, 5); $tab2 = array(1, 2, 3, 10, 11);
Ici mes tableaux possèdent donc deux différences.
Toi tu fais ça :
1/ Tu prends le "1" du premier tableau et tu le compares à tout le 2e. Il y est une fois dans le deuxième donc ici on va afficher "1111".
2/ Tu prends le "2" [...] : "2222".
3/ Tu prends le "3" [...] : "3333".
4/ Tu prends le "4" [...] : "44444".
5/ TU prends le "5" [...] : "555555".
Toi tu fais pareil mais avec des tableaux à 3 dimensions. Au finale, tu n'affiches pas les clés qui sont en différence, mais tu affiches une clé du premier tableau à chaque fois qu'elle n'est pas la même que n'importe quelle clé du 2e tableau.
En gros, si ton premier tableau ne contient 100 fois "1" et que ton 2e contient 99 fois "0" et une fois "1" alors ton script va t'afficher 100*99 = 9900 fois "1". Tu me suis ?
Mais que veux-tu faire exactement ?
Salut,
Pour bien comprendre la structure de tes tableaux, fais un print_r de chacun. Peut être que tu y verras plus clair dans façon de les parcourir.
Sinon, Mihawk marque un point : que veux tu faire exactement ?
Car il y a pas mal de fonction dans php pour les tableaux, peut être que ce que tu veux faire existe déjà.
Pour bien comprendre la structure de tes tableaux, fais un print_r de chacun. Peut être que tu y verras plus clair dans façon de les parcourir.
Sinon, Mihawk marque un point : que veux tu faire exactement ?
Car il y a pas mal de fonction dans php pour les tableaux, peut être que ce que tu veux faire existe déjà.
Bonjour;
pour tab quand j'ai fait print_r; il m'affiche ça
Array(
[0] => Array
(
[0] => Array
(
[0] =>mot
)
)
[1] => Array
(
[0] => Array
(
[0] => htt
)
)
[2] => Array
(
[0] => Array
(
[0] =>fac
)
)
[3] => Array
(
[0] => Array
(
[0] => collège
)
)
[4] => Array
(
[0] => Array
(
[0] =>primaire
)
)
)
et pour tab1 il m'affiche:
Array(
[0] => Array
(
[0] => Array
(
[0] =>mot
)
)
[1] => Array
(
[0] => Array
(
[0] => httmap
)
)
[2] => Array
(
[0] => Array
(
[0] =>fac
)
)
[3] => Array
(
[0] => Array
(
[0] => collège
)
)
[4] => Array
(
[0] => Array
(
[0] =>crèche
)
)
)
moi je voudrai récupérer les éléments qui se trouvent dans tab 1 et pas dans tab comme crèche, httmap
pour tab quand j'ai fait print_r; il m'affiche ça
Array(
[0] => Array
(
[0] => Array
(
[0] =>mot
)
)
[1] => Array
(
[0] => Array
(
[0] => htt
)
)
[2] => Array
(
[0] => Array
(
[0] =>fac
)
)
[3] => Array
(
[0] => Array
(
[0] => collège
)
)
[4] => Array
(
[0] => Array
(
[0] =>primaire
)
)
)
et pour tab1 il m'affiche:
Array(
[0] => Array
(
[0] => Array
(
[0] =>mot
)
)
[1] => Array
(
[0] => Array
(
[0] => httmap
)
)
[2] => Array
(
[0] => Array
(
[0] =>fac
)
)
[3] => Array
(
[0] => Array
(
[0] => collège
)
)
[4] => Array
(
[0] => Array
(
[0] =>crèche
)
)
)
moi je voudrai récupérer les éléments qui se trouvent dans tab 1 et pas dans tab comme crèche, httmap
Quel est l'intérêt d'utiliser des tableaux à trois dimensions si tu ne mets qu'une seule valeur dedans à chaque fois ? Autant faire :
Et ainsi tu auras tes différences en faisant :
$tab = array("mot", "htt", "fac", "collège", "primaire");
$tab1 = array("mot", "httmap", "fac", "collège", "crèche");
Et ainsi tu auras tes différences en faisant :
$diff = array_diff($tab1, $tab);
oui c'est ce que je suis en train de faire mais il faut le transférer à un tableau de 2 dimensions car j'ai besoin de séparer les éléments de mon tableau aux sous tableaux c'est pour ça j'ai fait ce code :
$tab1=array(array());
for ($i=0;$i<$nb;$i++){
foreach( $tab[$i] as $key11 => $value1) {
foreach( $value1 as $key111 => $value2) {
foreach( $value2 as $key1111 => $value) {
array_push($tab1, $value);
}
}
}
}
print_r($tab1);
mais sans succès il affiche tout dans un seul tableau mais moi j'ai besoin vraiment de le séparer dans un tableau à deux dimensions:(:(:(
$tab1=array(array());
for ($i=0;$i<$nb;$i++){
foreach( $tab[$i] as $key11 => $value1) {
foreach( $value1 as $key111 => $value2) {
foreach( $value2 as $key1111 => $value) {
array_push($tab1, $value);
}
}
}
}
print_r($tab1);
mais sans succès il affiche tout dans un seul tableau mais moi j'ai besoin vraiment de le séparer dans un tableau à deux dimensions:(:(:(