Intereting Posts
Проверьте, существует ли var перед отключением в PHP? Получение необработанных SQL-запросов в CodeIgniter 1.7 PHP выполнить код на странице закрыть Как получить номера страниц на основе идентификатора Ограничение количества записей, полученных при использовании Doctrine DQL в Symfony2 Проверка Laravel: обязательное условие обязательно_with_all Как получить год и месяц с даты – PHP foreach loop – возвращает только одну запись Разделители каталога PHP, заставляя косую черту; ненавязчивый Передача переменной PHP в JavaScript Как получить доступ к пользовательскому атрибуту изображения в list.phtml в Magento Примечание. Неверно сформированное числовое значение, встречающееся в C: \ xampp \ htdocs \ Space \ Find \ index.php в строке 21 Закрытие тегов оператора PHP arrow сохранение json-данных в json-файл с помощью ajax PHP Regex для соответствия определенным значениям из файла виртуального хоста Apache

Имплодировать данные из многомерного массива

Я новичок в 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 

Можно ли добиться этого эффекта с помощью указанной функции? Если нет, предложите альтернативное решение.

Довольно просто:

 $input = array( array( 'tag_name' => 'google' ), array( 'tag_name' => 'technology' ) ); echo implode(', ', array_map(function ($entry) { return $entry['tag_name']; }, $input)); 

http://3v4l.org/ltBZ0


и new в 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 – это функция обратного вызова, в которой вы можете играть с переданным массивом. это должно сработать.

 $str = implode(',', array_map(function($el){ return $el['tag_id']; }, $arr)); 

очень просто пойти на это

 $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)));