【问题标题】:How add a link on comma separated multidimensional array如何在逗号分隔的多维数组上添加链接
【发布时间】:2018-01-11 19:11:59
【问题描述】:

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

【问题讨论】:

  • 不知道你在问什么
  • 在 php7 array_column 中使用对象。在您通过$x->name 收集值之前
  • 你想要什么结果?有样品吗?
  • 这里是我想要的结果“冒险、动画、家族、奇幻”
  • 您是否询问如何将每个name 包装在a 标记中,并将id 作为href url 的一部分?

标签: php


【解决方案1】:

我建议在 $title_genres 上使用一个简单的 foreach 来构建一个仅包含链接名称的新数组,然后您可以对其进行内爆以使用逗号输出:

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

更新 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 的多合一混合;)

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

【讨论】:

  • 谢谢,没有简单的方法吗?
  • 这是最简单的方法 ;) 无法获得更基本的...此外,您可以随意调整该 html。
【解决方案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));

【讨论】:

  • 啊,呵呵,我刚加了一个。但是,是的!令人耳目一新的知道我没有在黑暗中刺伤。 (通常我从不使用array_map,我是老派)。
  • 忘记了包含数组的变量。
  • @Barmar 我选择你的解决方案,写起来更容易
  • 如何给array_map添加变量?
  • 如果您的意思是如何允许函数访问外部变量,请在 { 之前添加 use($variable) 声明。
猜你喜欢
  • 2015-06-23
  • 2023-03-14
  • 1970-01-01
  • 2015-05-26
  • 1970-01-01
  • 1970-01-01
  • 2020-07-22
  • 1970-01-01
  • 2014-05-27
相关资源
最近更新 更多