Ich bin Neuling bei PHP und brauche eine schnelle Lösung für das folgende Problem, kann aber anscheinend keine Lösung finden:
Ich habe so ein multidimensionales Array
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
)
)
Ich möchte mit implode()
irgendwie eine durch Kommas getrennte Zeichenfolge zurückgeben, die Werte des tag_name
-Schlüssels enthält.
google, technology
Kann man diesen Effekt mit der genannten Funktion erreichen? Wenn nicht, dann schlagen Sie bitte eine alternative Lösung vor.
Ziemlich einfach:
$input = array(
array(
'tag_name' => 'google'
),
array(
'tag_name' => 'technology'
)
);
echo implode(', ', array_map(function ($entry) {
return $entry['tag_name'];
}, $input));
und neu in 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
ist eine Rückruffunktion, bei der Sie mit dem übergebenen Array spielen können. Das sollte funktionieren.
$str = implode(',', array_map(function($el){ return $el['tag_id']; }, $arr));
Obwohl diese Frage mit der Konvertierung von Strings zusammenhängt, bin ich darauf gestoßen und wollte eine einfache Möglichkeit, Arrays in meine Protokolldateien zu schreiben. Wenn Sie nur die Informationen wünschen und sich nicht für die genaue Sauberkeit eines Strings interessieren, können Sie Folgendes in Betracht ziehen:
json_encode($array)
sehr einfach gehen Sie dafür
$str;
foreach ($arrays as $arr) {
$str .= $arr["tag_name"] . ",";
}
$str = trim($str, ',');//removes the final comma
Wenn Sie "tag_name" mit der zugehörigen "blogTags_id" verwenden möchten, verwenden Sie: (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)));
In dieser Situation implodieren Sie ($ array, ','); funktioniert, weil Sie nur die Werte wünschen. In PHP 5.6 für mich arbeiten.
Wenn Sie die Schlüssel und Werte wie folgt implodieren möchten:
blogTags_id: 1
tag_name: google
$toImplode=array();
foreach($array as $key => $value) {
$toImplode[]= "$key: $value".'<br>';
}
$imploded=implode('',$toImplode);
Sorry, ich verstehe das falsch, weil der Titel "Daten aus einem mehrdimensionalen Array implodieren". Nun, meine Antwort beantwortet es immer noch irgendwie, kann jemandem helfen, also nicht löschen.