1

我有一个名为 的多维数组$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);

        }

    }

目前,在某些情况下,显示的字数过多,我想限制在十个字以内。

我想不出办法来做到这一点。有人有什么建议吗?

多谢你们。

4

4 回答 4

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;
        }
    }
}
于 2013-07-24T20:07:05.000 回答
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++;
            }
            }

        }
于 2013-07-24T20:10:07.817 回答
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;
}
于 2013-07-24T20:11:32.330 回答
1

简单的。实现一个计数器。<li>下面的实现将为每组替代对象吐出 10 个单词。

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>元素,请查看其他答案!

于 2013-07-24T20:07:13.127 回答