84 votes

Retourner une seule colonne d'un tableau multidimensionnel

Je suis novice en PHP et j'ai besoin d'une solution rapide au problème suivant, mais je n'arrive pas à en trouver une :

J'ai un tableau multidimensionnel comme suit

Array
(
    [0] => Array
        (
            [blogTags_id] => 1
            [tag_name] => google
            [inserted_on] => 2013-05-22 09:51:34
            [inserted_by] => 2
        )

    [1] => Array
        (
            [blogTags_id] => 2
            [tag_name] => technology
            [inserted_on] => 2013-05-22 09:51:34
            [inserted_by] => 2
        )
)

Je veux utiliser le implode() pour retourner une chaîne de caractères séparée par des virgules contenant les valeurs de tag_name comme suit.

google, technology

Est-il possible d'obtenir cet effet avec la fonction susmentionnée ? Si ce n'est pas le cas, veuillez proposer une autre solution.

3voto

Tarik Points 2174

Si vous voulez "tag_name" avec "blogTags_id" associé, utilisez : (PHP > 5.5)

$blogDatas = array_column($your_multi_dim_array, 'tag_name', 'blogTags_id');
echo implode(', ', array_map(function ($k, $v) { return "$k: $v"; }, array_keys($blogDatas), array_values($blogDatas)));

1voto

Atanas Atanasov Points 41

Dans cette situation, implode($array,',') ; fonctionnera, car vous ne voulez que les valeurs. En PHP 5.6, cela fonctionne pour moi.

Si vous voulez imploser les clés et les valeurs en une seule comme :
blogTags_id : 1
tag_name : google

$toImplode=array();
foreach($array as $key => $value) {
$toImplode[]= "$key: $value".'<br>';
}
$imploded=implode('',$toImplode);

Désolé, j'ai mal compris, car le titre est "Implode data from a multi-dimensional array". Mais ma réponse répond toujours à la question, et peut aider quelqu'un, donc je ne la supprimerai pas.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X