J'essaye de parcourir un tableau en utilisant un autre tableau comme une sorte de "filtre":

$aa = ["b","r","i", "g", "i", "t", "t", "e"];
$bb = ["a", "e", "i", "o", "u", "r"];

foreach($aa as $b){
  if($b == $bb){
    echo "Give me an ". $b;
    echo "\n";
  }else{
    echo "Give me a ". $b;
    echo "\n";

  }
}

Je veux donc qu'il compare les lettres de $ aa à la liste de lettres de $ bb pour déterminer s'il doit faire écho "an ou" a "pour être grammaticalement correct. La seule façon dont j'ai pu le faire fonctionner correctement est de faire ceci:

foreach($aa as $b){
  if($b == "a" or $b == "e" or $b == "i" or $b == "o" or $b == "u" or $b == "r"){
    echo "Give me an ". $b;
    echo "\n";
  }else{
    echo "Give me a ". $b;
    echo "\n";

  }
}
0
Shady 18 oct. 2020 à 01:48

2 réponses

Meilleure réponse

Vous devriez utiliser in_array voici la documentation officielle sur php.net,

Je le ferais de cette façon:

foreach($aa as $b){
   if(in_array($b, $bb)){
      echo "Give me an ". $b;
      echo "\n";
   }else{
      echo "Give me a ". $b;
      echo "\n";

   }
 }
2
Marcello Perri 17 oct. 2020 à 23:09

Essaye ça :)

<?php

$aa = ["b","r","i", "g", "i", "t", "t", "e"];
$bb = ["a", "e", "i", "o", "u", "r"];

foreach($aa as $b){
    if(in_array($b, $bb)){
        echo "Give me an ". $b . "<br/>";
        echo "\n";
    }else{
        echo "Give me a ". $b . "<br/>";
        echo "\n";

    }
}

exit(0);

Production:

Give me a b
Give me an r
Give me an i
Give me a g
Give me an i
Give me a t
Give me a t
Give me an e

1
Tyler Miles 17 oct. 2020 à 23:10