如何在逗号分隔的多维数组

时间:2018-01-11 19:11:59

标签: php

如何使用逗号分隔的多维数组上的id添加链接?

到目前为止我做了什么:

$string = implode(", ", array_column($title_genres, "name"));
echo $string;

我的阵列:

array(4) {
  [0]=>
  object(stdClass)#66 (3) {
    ["id"]=>
    string(2) "21"
    ["name"]=>
    string(8) "Aventure"
    ["tmdb_id"]=>
    string(2) "12"
   }
  [1]=>
  object(stdClass)#67 (3) {
    ["id"]=>
    string(2) "20"
    ["name"]=>
    string(9) "Animation"
    ["tmdb_id"]=>
    string(2) "16"
   }
  [2]=>
  object(stdClass)#63 (3) {
    ["id"]=>
    string(1) "8"
    ["name"]=>
    string(8) "Familial"
    ["tmdb_id"]=>
    string(5) "10751"
   }
  [3]=>
  object(stdClass)#70 (3) {
    ["id"]=>
    string(1) "9"
    ["name"]=>
    string(11) "Fantastique"
    ["tmdb_id"]=>
    string(2) "14"
   }
}

2 个答案:

答案 0 :(得分:2)

我建议在$ title_genres上使用一个简单的foreach来构建一个刚刚链接的名称的新数组,然后你可以使用逗号输出内爆:

save()

更新1:如果您使用的是stdClass对象:

$links = array();
foreach($title_genres as $item) {
    $links[] = '<a href="/some.php?id='. $item['id'] .'">'. $item['name'] .'</a>';
}
echo implode(', ',$links);

更新2:使用array_map创建一个一行的mash;)

$links = array();
foreach($title_genres as $item) {
    $links[] = '<a href="/some.php?id='. $item->id .'">'. $item->name .'</a>';
}
echo implode(', ',$links);

答案 1 :(得分:2)

这是array_map解决方案,您决定是否认为它比foreach更简单。

$string = implode(",", array_map(function($item) {
    return "<a href='/some.php?id={$item->id'}'>{$item->name}</a>";
}, $title_genres));
echo $string;

如果基本URL位于变量中,则可以使用use()声明来访问它。

$baseurl = base_url();
$string = implode(",", array_map(function($item) use ($baseurl) {
    return "<a href='$baseurl/some.php?id={$item->id'}'>{$item->name}</a>";
}, $title_genres));