从数组返回字母表:for 循环不起作用


return alphabets from array: for loop not working

动机:我想使用数组从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;