Je suis novice chez 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 si
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 souhaite utiliser le implode()
pour renvoyer en quelque sorte une chaîne séparée par des virgules contenant les valeurs de la clé tag_name
comme suit
google, technology
Est-il possible d'obtenir cet effet avec cette fonction? Sinon, veuillez suggérer une solution alternative.
Assez facile:
$input = array(
array(
'tag_name' => 'google'
),
array(
'tag_name' => 'technology'
)
);
echo implode(', ', array_map(function ($entry) {
return $entry['tag_name'];
}, $input));
et nouveau dans php v5.5.0, array_column
:
echo implode(', ', array_column($input, 'tag_name'));
join(',', array_map(function (array $tag) { return $tag['tag_name']; }, $array))
array_map
est une fonction de rappel permettant de jouer avec le tableau passé . Cela devrait fonctionner.
$str = implode(',', array_map(function($el){ return $el['tag_id']; }, $arr));
Bien que cette question soit liée à la conversion de chaînes, je suis tombée sur cette question tout en recherchant un moyen simple d'écrire des tableaux dans mes fichiers journaux. Si vous souhaitez simplement obtenir des informations et ne vous souciez pas de la propreté exacte d'une chaîne, vous pouvez envisager:
json_encode($array)
très simple aller pour cela
$str;
foreach ($arrays as $arr) {
$str .= $arr["tag_name"] . ",";
}
$str = trim($str, ',');//removes the final comma
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)));
Dans cette situation, implode ($ array, ','); Cela fonctionne, car vous ne voulez que les valeurs. Dans PHP 5.6, travaillez pour moi.
Si vous voulez imploser les clés et les valeurs dans un comme:
blogTags_id: 1
tag_name: google
$toImplode=array();
foreach($array as $key => $value) {
$toImplode[]= "$key: $value".'<br>';
}
$imploded=implode('',$toImplode);
Désolé, je comprends mal, car le titre "Implode les données d’un tableau multidimensionnel". Eh bien, ma réponse répond toujours quand même, peut aider quelqu'un, alors ne le supprimera pas.