Manipulation array
Fermé
Melooo
Messages postés
1405
Date d'inscription
vendredi 28 novembre 2008
Statut
Membre
Dernière intervention
18 mars 2013
-
31 mars 2011 à 11:08
Melooo Messages postés 1405 Date d'inscription vendredi 28 novembre 2008 Statut Membre Dernière intervention 18 mars 2013 - 31 mars 2011 à 16:08
Melooo Messages postés 1405 Date d'inscription vendredi 28 novembre 2008 Statut Membre Dernière intervention 18 mars 2013 - 31 mars 2011 à 16:08
A voir également:
- Manipulation array
- Trying to access array offset on value of type bool ✓ - Forum PHP
- Array mac - Guide
- Mode anti manipulation - Guide
- Can only iterate over an array or an instance of java.lang.iterable ✓ - Forum Java
- Convertir array en string php - Forum PHP
1 réponse
le hollandais volant
Messages postés
4963
Date d'inscription
samedi 8 mars 2008
Statut
Membre
Dernière intervention
31 octobre 2019
1 052
31 mars 2011 à 12:58
31 mars 2011 à 12:58
Salut !
Tu as :
Et tu veux :
C'est bien ça ?
Essayes un truc ainsi :
$array, ce sont des petits tableaux (donc faut faire un bouclage sur tous tes tableaux là.
$array35 est un tableau contenant les valeurs des tableaux 35
$array36 est un tableau contenant les valeurs des tableaux 36
Ce que je fais :
- je test si le tableau en question contient la clé 35,
- je test aussi si le tableau ne contient qu'une case (sinon il aurait fallu faire une récursivité sur les cases du tableau en plus).
- si oui : on ajoute au tableau 35
Idem pour 36.
Tu as :
Array ( [35] => 100 ) Array ( [35] => 0 ) Array ( [35] => 100 ) Array ( [36] => 0 ) Array ( [36] => 0 ) Array ( [36] => 0 ) Array ( [36] => 75 ) Array ( [36] => 55 ) Array ( [36] => 100 ) Array ( [36] => 12 ) Array ( [36] => 28 ) Array ( [36] => 87 ) Array ( [36] => 0 ) Array ( [36] => 56 ) Array ( [36] => 100 )
Et tu veux :
// celui de 35
Array (
[0] => 100,
[1] => 0,
[2] => 100
)
// celui de 36
Array (
[0] => 0,
[2] => 0,
[3] => 0,
[4] => 75,
[5] => 55,
[6] => 100,
[7] => 12,
[8] => 28,
[9] => 87,
[10] => 0,
[11] => 56,
[12] => 100
)
C'est bien ça ?
Essayes un truc ainsi :
if (array_key_exists('35', $array) and sizeof($array) == 1) {
array_merge($array35, $array);
} elseif (array_key_exists('36', $array) and sizeof($array) == 1) {
array_merge($array35, $array);
}
$array, ce sont des petits tableaux (donc faut faire un bouclage sur tous tes tableaux là.
$array35 est un tableau contenant les valeurs des tableaux 35
$array36 est un tableau contenant les valeurs des tableaux 36
Ce que je fais :
- je test si le tableau en question contient la clé 35,
- je test aussi si le tableau ne contient qu'une case (sinon il aurait fallu faire une récursivité sur les cases du tableau en plus).
- si oui : on ajoute au tableau 35
Idem pour 36.
Modifié par Melooo le 31/03/2011 à 15:24
je les récupères de ma base de données...
Donc j'ai essayé d'arranger à ma sauce (ce qui est pas gagné) ce qui donne :
$array = array($parcours[1] => $le_parcours[0]); if (array_key_exists($parcours[1], $array)){ print_r($le_parcours[0].'<br /><br />'); }voila ce que mon donne mon code :
en faite dans ma base de données j'ai des tâches, c'est tâches peuvent posséder, des "tâches précédent" par exemple ma tâche 19 à comme tâche précédentes la 1,13 et 18... cela veut dire que ma tâche 1 sera à 100%(c'est à dire terminé) quand les tâches précédentes (1,13 et18) seront à 100%... si la tâche précédent 13 et 18 sont terminés mais pas la 1 alors ma tâche 19 sera "en cours"...
je sais pas si je suis très claire...
$array = array($parcours[1] => $le_parcours[0]); if (array_key_exists($parcours[1], $array)){ if($le_parcours[0] > 0 && $le_parcours[0] < 100){ echo "encours"; }else if($le_parcours[0] == 100){echo "termine";} }Je n'ai pas fini encore le code hein... pensez-vous que je suis sur la bonne voie ?
31 mars 2011 à 15:52
31 mars 2011 à 16:08
$idx_actions = "SELECT .... FROM .... WHERE ..."; $query_action = mysql_query($idx_actions); $rows = mysql_num_rows($query_action); while ($parcours = mysql_fetch_array($query_action)) { $explode_action = explode(',' , $parcours[0]); //print_r($test = array($parcours[1] => $explode_action)); foreach( $explode_action as $value ) { $req_stat = "SELECT.. FROM tableau_bord WHERE tableau_int = '".$value."' "; $query_stat = mysql_query($req_stat); while($le_parcours = mysql_fetch_array($query_stat)) { $array[$parcours[1]] = array($parcours[1] => $le_parcours[0]); if (array_key_exists($parcours[1], $array[$parcours[1]])){ array_search($le_parcours[0], $array[$parcours[1]]); { array_merge($array[$parcours[1]],$array); print_r($array[$parcours[1]]); } /*if($le_parcours[0] > 0 && $le_parcours[0] < 100){ echo "encours"; }else if($le_parcours[0] == 100){echo "termine";} else if($le_parcours[0] == 0){echo "enattente";}*/ }Donc en faite je voudrais savoir le statut de mes tâches en fonctions des tâches précédentes... mais je voudrais supprimer les doublons, comme par exemple pour la tâche 35, la tâche 1 et 18 sont terminés, donc du coup il m'affiche deux fois terminés, alors que je voudrais qu'il m'affiche encours