Я новичок в PHP, и мне нужно быстрое решение следующей проблемы, но, похоже, не могу его найти:
У меня такой многомерный массив
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
)
)
Я хочу использовать, implode()
чтобы каким-то образом вернуть строку с разделителями-запятыми, содержащую такие значения tag_name
ключа.
google, technology
Можно ли добиться такого эффекта с помощью указанной функции? Если нет, предложите альтернативное решение.
Хотя этот вопрос связан с преобразованием строк, я наткнулся на него, когда мне нужен простой способ записи массивов в мои файлы журналов. Если вам просто нужна информация и вас не волнует точная чистота строки, вы можете подумать:
json_encode($array)
источник
array_map
это функция обратного вызова, в которой вы можете играть с переданным массивом. это должно работать.$str = implode(',', array_map(function($el){ return $el['tag_id']; }, $arr));
источник
join(',', array_map(function (array $tag) { return $tag['tag_name']; }, $array))
источник
очень просто пойти на это
$str; foreach ($arrays as $arr) { $str .= $arr["tag_name"] . ","; } $str = trim($str, ',');//removes the final comma
источник
Если вы хотите, чтобы «tag_name» было связано с «blogTags_id», используйте: (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)));
источник
В этой ситуации implode ($ array, ','); будет работать, потому что вам нужны только значения. В PHP 5.6 у меня работает.
Если вы хотите объединить ключи и значения в один, например:
blogTags_id: 1
tag_name: google
$toImplode=array(); foreach($array as $key => $value) { $toImplode[]= "$key: $value".'<br>'; } $imploded=implode('',$toImplode);
Извините, я неправильно понял, так как заголовок «Взрыв данных из многомерного массива». Ну мой ответ еще как-нибудь, может кому поможет, так что удалять не буду.
источник