im试图从数组项创建标签,并且数组项的数量始终不同,
$myarray = 'sports,politics,entertainment,celebs';
$siteurl = 'http://example.com/';
$tag = explode(',', $myarray);
这就是我所做的
echo '<p>tag : <a href="'.$siteurl.'?'.$tag[0].'" >'.$tag[0].'</a>,
<a href="'.$siteurl.'?'.$tag[1].'" >'.$tag[1].'</a>,
<a href="'.$siteurl.'?'.$tag[2].'" >'.$tag[2].'</a>,
<a href="'.$siteurl.'?'.$tag[3].'" >'.$tag[3].'</a>,
<a href="'.$siteurl.'?'.$tag[4].'" >'.$tag[4].'</a></p>';
我如何通过一个调用来回显此标签,并且不弄清所有数组项的数量?
编辑:$ vatag的错字
答案 0 :(得分:5)
您可以使用foreach循环来完成此操作,如下所示:
$myarray = 'sports,politics,entertainment,celebs';
$siteurl = 'http://example.com/';
$tag = explode(',', $myarray);
foreach($tag as &$value) {
echo '<a href="'.$siteurl.'?'.$value.'" >'.$value.'</a>';
}
结果:
<a href="http://example.com/?sports" >sports</a><a href="http://example.com/?politics" >politics</a><a href="http://example.com/?entertainment" >entertainment</a><a href="http://example.com/?celebs" >celebs</a>
答案 1 :(得分:1)
然后您可以像这样进行操作:
$len = count($tag);
for($i=0;$i<$len;$i++){
echo '<a href="'.$siteurl.'?'.$tag[$i].'" >'.$tag[$i].'</a>';
}
完整的代码
$myarray = 'sports,politics,entertainment,celebs';
$siteurl = 'http://example.com/';
$tag = explode(',', $myarray);
$len = count($tag);
for($i=0;$i<$len;$i++){
echo '<a href="'.$siteurl.'?'.$tag[$i].'" >'.$tag[$i].'</a>';
}
另一种更高级的方式是这样的(这是我通常要做的)
$myarray = 'sports,politics,entertainment,celebs';
$siteurl = 'http://example.com/';
$tag = explode(',', $myarray);
$html = array_map(function($item)use($siteurl){
return '<a href="'.$siteurl.'?'.$item.'" >'.$item.'</a>';
}, $tag);
echo implode("\n",$html);
这样,在页面的源代码中,每个链接都在换行符上,这使得阅读源代码更加容易。您可以使用“”内爆,也不会返回行。
干杯!
答案 2 :(得分:1)
您想要的是一个foreach循环,该循环将遍历数组的事件元素,而不管其长度如何。
// Start with initialising an empty string
$str = '';
// Loop through every element of the $tag array,
// using $value to hold the value of the current element in the loop
foreach ($tag as $value) {
// Append the new link to the end of the string
$str .= '<a href="' . $siteurl . '?' . $value . '" >' . $value . '</a>' . ', ';
}
// Echo the final array, after trimming off any spaces or commas
// from the end
echo '<p>tag :' . rtrim($str, ', ') . '</p>';
答案 3 :(得分:0)
您没有$vatag
数组,是吗?您无法匹配您没有的东西,或者如果您拥有它,向我们展示其内容。
只需使用以下代码:
$siteurl = 'http://example.com/';
$tags = explode(',', 'sports,politics,entertainment,celebs');
echo '<p>Tags: ';
foreach($tags as $tag) {
echo "<a href=\"{$siteurl}?{$tag}\">{$tag} </a>";
}
echo '</p>';