Как внедрить такой массив в PHP?
Я хочу показать разделенную запятыми серию ссылок следующим массивом, используя implode:
Имя массива:
$product['product_category']
Данные массива:
Array (
[0] => Array (
[name] => Apparel
[href] => http://localhost/uooro/index.php?route=profile/category&path=12
)
[1] => Array (
[name] => Business Services
[href] => http://localhost/uooro/index.php?route=profile/category&path=15
)
[2] => Array (
[name] => Chemicals
[href] => http://localhost/uooro/index.php?route=profile/category&path=16
)
)
Я хочу получить такой результат:
Apparel, Business Services, Chemicals
4 ответа
Решение
PHP 5.5+
Ты можешь использовать array_column
если вы используете PHP 5.5 или новее.
echo implode(', ', array_column($product['product_category'], 'name'));
// Apparel, Business Services, Chemicals
Рабочий пример: https://3v4l.org/MsHJb
PHP <5.5
В противном случае, первое использование array_map
чтобы сгладить массив, а затем просто взорваться.
echo implode(", ", array_map(function($category) {
return $category['name'];
}, $product['product_category']));
// Apparel, Business Services, Chemicals
Рабочий пример: https://3v4l.org/rKJHB
$output = implode(', ', array_map(function ($names) {
return $names['name'];
}, $product['product_category']));
или в php 5.5.0:
$output = implode(', ', array_column($product['product_category'], 'name'));
Информация взята с этой страницы:
$namearray = array_column($product['product_category'],'name');
$namearray = implode(",",$namearray);
Я попробовал это, и это работает.
Вы можете сделать это, используя просто foreach
петля.
<?php
$arr = array(
array('name' => 'Apparel', 'href' => 'http://localhost/uooro/index.php?route=profile/category&path=12'),
array ( 'name' => 'Business Services', 'href' => 'http://localhost/uooro/index.php?route=profile/category&path=15' ),
array ( 'name' => 'Chemicals', 'href' => 'http://localhost/uooro/index.php?route=profile/category&path=16')
);
foreach($arr as $val){
$newArr[] = $val['name'];
};
echo implode(', ',$newArr);