动机:我想使用数组从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/"
该代码违反了 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;
同一行中的 2 个错误$ap = $ap[i];
$ap = $alphas[$i];
[i] -> 无常数 i$ap = $ap -> 你$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;
您已经覆盖了 var $ap
,这里正在工作
$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;