如何使用逗号分隔的多维数组上的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"
}
}
答案 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));