我有一个名为$alternative
的多维数组,其中包含单词。
这个数组是动态生成的,有时可能只有3个单词,其他时候可能有300个单词。
在下面的代码中,我将数组中的单词输出到网页。
我怎么能把输出限制为10个字?
foreach ($alternative as $test)
{
foreach ($test as $test2)
{
$test3 = ucwords($test2); //Capitalizes first letter of each word
printf('<li><a href="related.php?query=%1$s" title="%1$s" >%1$s</a></li>', $test3);
}
}
目前,在某些情况下,显示的单词太多,我想将其限制为十个单词。
我想不出办法做到这一点。有人有什么建议吗?
谢谢你们。
答案 0 :(得分:3)
$counter = 0;
foreach ($alternative as $test) {
foreach ($test as $test2) {
$test3 = ucwords($test2); //Capitalizes first letter of each word
printf('<li><a href="related.php?query=%1$s" title="%1$s" >%1$s</a></li>', $test3);
if (++$counter > 10) {
break 2;
}
}
}
答案 1 :(得分:2)
你可以把柜台放在里面,如:
$counter = 0 ;
foreach ($alternative as $test)
{
foreach ($test as $test2)
{
$test3 = ucwords($test2); //Capitalizes first letter of each word
printf('<li><a href="related.php?query=%1$s" title="%1$s" >%1$s</a></li>', test3);
if(counter == 9 ) {
break;
}else{
counter++;
}
}
}
答案 2 :(得分:1)
简单。实施一个柜台。以下实现将为每组替代对象吐出10个<li>
个字。
foreach ($alternative as $test)
{
$count = 0;
foreach ($test as $test2)
{
if ($count >= 10) break;
$test3 = ucwords($test2); //Capitalizes first letter of each word
printf('<li><a href="related.php?query=%1$s" title="%1$s" >%1$s</a></li>',$test3);
$count++;
}
}
总共只有10 <li>
个元素,请看另一个答案!
答案 3 :(得分:1)
您可以简单地使用计数器并在每次打印单词时递增计数器。这是一个简单的例子:
$max_words = 10;
$nb_words = 0;
foreach ($alternative as $test)
{
foreach ($test as $test2)
{
$test3 = ucwords($test2); //Capitalizes first letter of each word
printf('<li><a href="related.php?query=%1$s" title="%1$s" >%1$s</a></li>', $test3);
$nb_words++;
if($nb_words >= $max_words)
break;
}
if($nb_words >= $max_words)
break;
}