Soy un novato en PHP y necesito una solución rápida para el siguiente problema, pero parece que no puedo encontrar una:
Tengo una matriz multidimensional como esa
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
)
)
Quiero usar el implode()
para devolver de alguna manera una cadena separada por comas que contiene valores de tag_name
clave como ese.
google, technology
¿Es posible lograr este efecto con dicha función? Si no es así, sugiera una solución alternativa.
Aunque esta pregunta está relacionada con la conversión de cadenas, me encontré con esto mientras quería una forma fácil de escribir matrices en mis archivos de registro. Si solo desea la información y no le importa la limpieza exacta de una cadena, puede considerar:
json_encode($array)
fuente
array_map
es una función de devolución de llamada, donde puedes jugar con la matriz pasada. Esto debería funcionar.$str = implode(',', array_map(function($el){ return $el['tag_id']; }, $arr));
fuente
join(',', array_map(function (array $tag) { return $tag['tag_name']; }, $array))
fuente
muy simple, ve por esto
$str; foreach ($arrays as $arr) { $str .= $arr["tag_name"] . ","; } $str = trim($str, ',');//removes the final comma
fuente
Si desea "tag_name" con "blogTags_id" asociado, utilice: (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)));
fuente
En esta situación, implosionar ($ array, ','); funcionará, porque solo desea los valores. En PHP 5.6 trabajando para mí.
Si desea implosionar las claves y los valores en uno como:
blogTags_id: 1
tag_name: google
$toImplode=array(); foreach($array as $key => $value) { $toImplode[]= "$key: $value".'<br>'; } $imploded=implode('',$toImplode);
Lo siento, entiendo mal, debido al título "Implantar datos de una matriz multidimensional". Bueno, mi respuesta todavía la responde de alguna manera, puede ayudar a alguien, por lo que no la eliminará.
fuente