动机:我想使用数组从a-z获取所有aplphabets。
进展:到目前为止我尝试过的是。
代码:
$ap = range('a', 'z');
$toecho="";
for ($i = 0; $i <= 10; $i++)
{
$ap = $ap[i];
$toecho .='<a href="/view/'.$ap.'" title="movies starting with letter '.$ap.'">'.$ap.'</a>';
echo $toecho;
}
但它不会打印/view/a"
...它只会打印/view/"
答案 0 :(得分:2)
该代码违反了KISS原则。 PHP中的范围本身是可迭代的:
$toecho = '';
foreach(array_slice(range('a', 'z'), 0, 10) as $a) {
$toecho .= "<a href='/view/${a}' title='starting with ${a}'>${a}</a><br />";
}
echo $toecho;
以更易读的方式做你想要的东西。希望能帮助到你。请注意,如果您不需要在最后一项之后进行中断,则可以使用join:
$toecho = implode('<br>', array_map(function($a) {
return "<a href='/view/${a}' title='starting with ${a}'>${a}</a>";
}, array_slice(range('a', 'z'), 0, 10)));
echo $toecho;
答案 1 :(得分:1)
同一行$ap = $ap[i];
到$ap = $alphas[$i];
[i] - &gt;没有常数我 $ ap = $ ap - &gt;你贪图$ ap变量
代码:
$alphas = range('a', 'z');
$toecho="";
for ($i = 0; $i <= 10; $i++)
{
$ap = $alphas[$i];
$toecho .='<a href="/view/'.$ap.'" title="movies starting with letter '.$ap.'">'.$ap.'</a><br />';
}
echo $toecho;
附加代码: 我们可以做得更好
$toecho="";
foreach (range('a', 'k') as $letter) {
$toecho .='<a href="/view/'.$letter.'" title="movies starting with letter '.$letter.'">'.$letter.'</a><br />';
}
echo $toecho;
答案 2 :(得分:1)
您已覆盖$ap
var,此处正在运行
$ap = range('a', 'z');
$toecho="";
for ($i = 0; $i <= 10; $i++)
{
$a = $ap[$i]; //use a different variable name than array itself
$toecho .='<a href="/view/'.$a.'" title="movies starting with letter '.$a.'">'.$a.'</a>';
}
echo $toecho;