Как внедрить такой массив в 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);
Другие вопросы по тегам