[RESOLU] multidimensional array

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [RESOLU] multidimensional array

Re: multidimensional array

par lugdanumm » 15 janv. 2020, 18:54

Quel abruti !! :?

Merci à vous tous pour votre aide ! :agenouille:

Bonne fin de journée

Re: multidimensional array

par tesmet » 15 janv. 2020, 16:31

Re: multidimensional array

par Saian » 15 janv. 2020, 14:14

Salut, ça pourra peut être t'aider dans ton raisonnement :
$words = ['voiture', 'camion', 'bicyclette', 'camion'];
$count = [];

foreach ($words as $word) {
  if (!isset($count[$word]))
    $count[$word] = 0;

  $count[$word]++;
}

print_r($count);
/*
Array
(
  [voiture] => 1
  [camion] => 2
  [bicyclette] => 1
)
*/

Re: multidimensional array

par or 1 » 15 janv. 2020, 00:41

ajoute un
echo "<pre>";
print_r($data);
echo "</pre>";
pour voir le format de ce tableau et comprendre qu'il faut utiliser le résultat d'array_search

si le nombre d’occurrence est la seule donnée associée à l'index, la structure est inutilement compliquée.

multidimensional array

par lugdanumm » 15 janv. 2020, 00:26

Bonjour tout le monde

Je bloque depuis 2 jours sur un trucs que je n'arrive pas assimiler, du coup je vous demande une petite aide.
$data = array();

//Début de la boucle ici
foreach ($iterator as $file) {.........
//Récupère les mots qui sont dans des lignes dans un fichier comme par exemple
$ListeMots = "mot0|mot1|mot2|mot3|mot4|mot5|mot6|mot7";

//$ListeMots = Array ( [0] => mot0 [1] => mot1 [2] => mot2 [3] => mot3 [4] => mot4 [5] => mot5 [6] => mot6 [7] => mot7)

//On sépare les mots pour les tester un par un...
foreach ($ListeMots as $MotTag) {

                //Le mot est déjà présent dans le tableau, du coup on incrémente le nbdefois qu'il apparait en le modifiant
                if (array_search($MotTag, array_column($data, 'MotTag')) !== FALSE)
                { 
                        echo $MotTag.' trouvé<br>';
                        $data[$MotTag]["NBdeFois"]=$data[$MotTag]["NBdeFois"]+1; //Là je sais pas, j'ai essayé pleins de trucs
                 }
                 else //il n'apparait pas dans le tableau, on va le créer
                {
                        echo $MotTag.' pas trouvé<br>';
                        $data[] = array('MotTag' => $MotTag, 'NBdeFois' => 1 );//on l'ajoute en commençant à compter son nombre d'apparition à 1
                }         
                
 }
En fait j'aimerais pouvoir récupérer les mots puis :
-> Si mot pas apparu (pas dans le tableau) on l'ajoute au tableau en indiquant du style MOT1->1
-> Si le mot es déjà dans le tableau, on incrément mais ne l'ajoute pas : MOT1->2

Je sais pas si je suis clair mais en tout cas je vous remercie d'avance pour votre coup de main. :pouce: