Votre question
Résolu

Implode tableau à 2 dimensions

Tags :
  • Array
  • téléphone
Dernière réponse : dans Programmation
19 Mars 2016 21:17:09

Bonjour communoté Tom's, je tente d'utiliser la fonction IMPLODE avec un tableau à 2 dimensions. Le tableau est le resultat d'une requete SQL qui se presente comme suite:

  1. /********** fonction de la liste des distinct nuumero mobile des parents d'eleve d'une classe donnée***********/
  2.  
  3. function liste_parent($classe){
  4.  
  5. $auto = array();
  6. $pdo = PDO2::getInstance();
  7. $requete = $pdo->prepare(" SELECT distinct p.mobile_par
  8. FROM parent as p JOIN eleve as e
  9. ON p.idparent = e.parent_idparent
  10. WHERE e.classe_idclasse = :idclasse ");
  11. $requete->bindValue(':idclasse',$classe);
  12. $requete->execute();
  13. while($r = $requete->fetch(PDO::FETCH_ASSOC)){
  14. $auto[] = $r;
  15. }
  16. return $auto;
  17.  
  18. }

Apres je recupere les valeurs de la fonction dans tableau comme suite:
$num = liste_parent($classe);

Quand je fait print_r($num) j'obtient le tableau suivant:

  1. Array ( [0] => Array ( [0] => Array ( [m] => 47536797 ) [1] => Array ( [m] => 03658545 ) [2] => Array ( [m] => 04786231 ) [3] => Array ( [m] => 06587412 ) [4] => Array ( [m] => 78153642 ) [5] => Array ( [m] => 57857596 ) [6] => Array ( [m] => 42153513 ) [7] => Array ( [m] => 49388934 ) [8] => Array ( [m] => 05857596 ) [9] => Array ( [m] => 07789542 ) [10] => Array ( [m] => 07458565 ) [11] => Array ( [m] => 02854732 ) [12] => Array ( [m] => 08456214 ) [13] => Array ( [m] => 41258742 ) [14] => Array ( [m] => 43587465 ) ) )


j'aimerai recuperer les nu,ero de telephone par un implode en les separant avec une virgule,
SVP quelqu'un pourrait m'aider à realiser cela, Merci d'avance communauté

Autres pages sur : implode tableau dimensions

19 Mars 2016 22:19:24

Obtenir une chaine de caratere comme suite: $to = '09897654,07653423,78321098,76542900'
m
0
l

Meilleure solution

20 Mars 2016 13:22:55

<?php

$str = "";
foreach($num[0] as $c=>$element){
str .= $element.' ,' ;
}

?>
partage
Contenus similaires
24 Mars 2016 18:38:59

Merci mon frère Archipeldupond, une fois de plus tu es encore prompt, mais je pense qu'il faut TRIM($str,',') en fin de sorti du FOREACH. Jai essayé ta solution et sa marche mais il faut 'trim' pour enlever les virgule en début en fin. Une de+ merci
m
0
l
24 Mars 2016 21:55:52

Bonsoir,

Bonne solution trouvais par archipel de la surface ;) 

Ceci dit niveau optimisation j’espère que tu a pas chaîner les deux boucle ^^

Apres personnellement , j'aurais plus vue un fetchAll de PDO pour éviter le while et pour sortire les info j'aurais regarder du coté de la function array_column de PHP : http://php.net/manual/fr/function.array-column.php
m
0
l
25 Mars 2016 14:35:45

Merci, bonne anticipation. Mais il ne faudra pas oublié aussi que array_column n'est disponible que sur PHP 5.6 et +, alors pour éviter toute limitation de serveur lors de la production, je pense que la solution de Archipel reste une solution stable
m
0
l
25 Mars 2016 18:59:16

Tres bonne remarque !

Enfin c'est PHP 5.5 mais bon ...

si tu veux vraiment codé proprement
rajoute ça dans ton code [:turlupin-en-ptard]

  1. //Signature: array array_column ( array $input , mixed $column_key [, mixed $index_key ] )
  2. if( !function_exists( 'array_column' ) ):
  3. function array_column( array $input, $column_key, $index_key = null ) {
  4. $result = array();
  5. foreach( $input as $k => $v )
  6. $result[ $index_key ? $v[ $index_key ] : $k ] = $v[ $column_key ];
  7. return $result;
  8. }
  9. endif;


C'est limite du troll comme réponse en fais ^^ mais j aime bien pousser les chose jusqu'au boue quitte a ce que cela devienne absurde ^^
m
0
l
29 Mars 2016 17:46:25

Merci à toi andrelec1, comme tu viens de le dire ta solution est optimiste. Je l'ai testé et elle marche très bien. Elle permet de ne pas rencontrer de Bug quelque soit là version de PHP installé sur le serveur. Très bon coup d’œil ;)  ;) . Je la conserve en toute securité
m
0
l
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS