Besoin d'aide pour un array en PHP
Forum Programmation : Besoin d'aide pour un array en PHP
Salut à tous...
Voila, pour mon jeu j'ai besoin de pouvoir rechercher certaine valeur d'une colonne d'une variable Array (comme lorsqu'on fait avec Mysql : 'SELEC * FROM <table> WHERE id="3"' ce qui revient a ne sélectionner que les ligne de la <table> qui ont pour attribut id 3....je voudrais faire la meme chose mais dans un array)
Merci
euh c'est peut être bete comme réponse mais moi je ferai une boucle sur mon tableau et if(tableau[i]==3) then ...
je ne suis pas sur qu'il y ait une autre solution.
Si ce 3 est unique (clé de ta table tu peux te servir d'un tableau associatif et faire tableau["3"])
j'espere que je reponds à ta question!
Marc
bin ça m'a pas trop convaincu tout ça...je vais chercher une solution....merci quand meme
$tableau= array(1,2,3,4,5,6,7,8,9,8,7,6,5,4,3,2,1);
// on va chercher 3
$tofind= 3;
// tableau vide
$tab_return= array();
foreach($tableau as $key=>$val) {
--- if($val==$tofind) {
-----------// on stocker l'indice dans tab_return
---------- $tab_return[]= $key;
----}
}
// $tab_return= array(2, 14);
tu peux jeter un oeil aux fonctions de tableau, à gauche : php.net
Bin merci rongeur-sauvage mais ç an'est pas encore ça...de plus j'ai vu (sur Nexen) une commande sur les array ( array_search(); ) qui fait tout ce que tu vient de me donner et si je ne m'abuse, cela donne les clés (numéros de lignes) auxquels sont stockées les données recherchées....et ce n'est pas tout à fait ce qu'il me faut....ce que je voulais c'est un truc comme pour la recherche dans la base de données....une commande qui retournerai un array contenant toutes les valeur des lignes dont la valeur d'une seule colonne est spécifique...
En fait je compte utiliser ce système afin de récupérer toutes les infos concernant les objets que possèdent les joueurs en sachant que les objet sont stockés dans une table (celle des objet), les objet d'inventaire dans une autre table (celle des héros) et sous forme de string comme ceci: ,1,2,3,4,5 etc etc où chaque chiffre représente en fait l'ID de l'objet correspondant dans la table objet....
tu ne trouveras pas un truc tout fait.
Code :
|
donne un résultat correct, si ce n'est pas ce que tu cherches montre nous ta structure de tableau et un exemple de ce que tu veux recuperer (avec pseudo-correspondance SQL)
C'est pas pour dire, mais l'idée "oui mais une boucle for c'est trop compliqué" ca fait un peu nunuche...
Sinon, j'ai trouvé une fonction qui correspond à ce que tu veux mais Oh My God il faut écrire une fonction callback, ce qui fait plusieurs lignes, c'est fatiguant
http://fr.php.net/manual/fr/function.array-filter.php
Bin merci beaucoups pour votre aide mais j'ai trouvé solution...apès mure reflexion sur "comment seront organisées mes données d'objet plus tard?", je me suis aperçu que ce code :
$donnees=mysql_fetch_array(mysql_query('SELEC * FROM heros WHERE pseudo="'.$_SESSION['pseudo'].'"'));
//explose le contenu de $sort['sorts'] en un tableau contenant à chaque ligne une valeur. Fait de meme avec le nombre de sort associé
$objet_inv=explode(",",$donnees['inventaire']);
//Compte le nombre d'objet possédés
$nbr_objet=count($objet_inv);
//Fait une boucle de manière a afficher uniquement ce qui est défini par l'un des id de l'inventaire et le type d'objet
for($i=1 ; $i!=$nbr_objet ; $i++)
{
$objet_base=mysql_fetch_array(mysql_query('SELEC * FROM `objet` WHERE id="'.$objet_inv[$i].'" and type="'$_GET['type'].'"'));
if ($objet_base!="" )
{
echo('<option>'.$objet_base['nom'].'</option>');
}
}
suffirait largement
...(et après des tests avec des objet "bidon", en effet cela fonctionne
D
@+
| Citation : C'est pas pour dire, mais l'idée "oui mais une boucle for c'est trop compliqué" ca fait un peu nunuche... |
Heu j'ai pas tout compris là...j'airelu tous les messages de ce topic et a aucun momen je ne vois la mention "for"...
Bon peut etre que ton idée aurait marché mais je ne sais meme pas ce qu'est une fonction callback
s
| Citation : euh c'est peut être bete comme réponse mais moi je ferai une boucle sur mon tableau et if(tableau[i]==3) then ...
|
Si c'est pas une mention de boucle for ca...
Pour la fonction callback : au cas où t'aurais pas remarqué, dans la doc PHP il y a des exemples d'utilisation, qui en général suffisent à comprendre comment ca marche.
Exemple :
Code :
|
| Citation : L'exemple ci-dessus va afficher :
|
Si avec ca t'as pas compris comment ca marche...
| Citation :
|
Si c'est pas une mention de boucle for ca...
[/quote]
Bin pas forcément...ça peut etre un while aussi...
Il y a 2187 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici.
