Jestem nowicjuszem w PHP i potrzebuję szybkiego rozwiązania następującego problemu, ale nie mogę go wymyślić:
Mam taką wielowymiarową tablicę
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
)
)
Chcę użyć, implode()
aby w jakiś sposób zwrócić ciąg oddzielony przecinkami zawierający wartości tag_name
klucza.
google, technology
Czy za pomocą tej funkcji można osiągnąć taki efekt? Jeśli nie, to zaproponuj alternatywne rozwiązanie.
Chociaż to pytanie jest związane z konwersją ciągów, natknąłem się na to, szukając prostego sposobu na zapisywanie tablic w moich plikach dziennika. Jeśli potrzebujesz tylko informacji i nie dbasz o dokładną czystość ciągu, możesz rozważyć:
json_encode($array)
źródło
array_map
jest funkcją zwrotną, w której można bawić się przekazaną tablicą. to powinno działać.$str = implode(',', array_map(function($el){ return $el['tag_id']; }, $arr));
źródło
join(',', array_map(function (array $tag) { return $tag['tag_name']; }, $array))
źródło
bardzo proste, przejdź do tego
$str; foreach ($arrays as $arr) { $str .= $arr["tag_name"] . ","; } $str = trim($str, ',');//removes the final comma
źródło
Jeśli chcesz, aby nazwa „tag_name” była powiązana z „blogTags_id”, użyj: (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)));
źródło
W tej sytuacji imploduje ($ tablica, ','); zadziała, ponieważ chcesz tylko wartości. W PHP 5.6 pracuje dla mnie.
Jeśli chcesz implodować klucze i wartości w jednym, takim jak:
blogTags_id: 1
tag_name: google
$toImplode=array(); foreach($array as $key => $value) { $toImplode[]= "$key: $value".'<br>'; } $imploded=implode('',$toImplode);
Przepraszam, źle rozumiem, ponieważ tytuł „Implode dane z wielowymiarowej tablicy”. Cóż, moja odpowiedź nadal jakoś na to odpowiem, może komuś pomóc, więc nie usunie.
źródło