Php 从数组返回字母表:for循环不工作

Php 从数组返回字母表:for循环不工作,php,arrays,Php,Arrays,动机:我想使用数组从a-z获得所有APLPHBET 进展:到目前为止,我尝试过的事情是 代码: $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

动机:我想使用数组从a-z获得所有APLPHBET

进展:到目前为止,我尝试过的事情是

代码:

    $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;
        }
$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;
$ap=范围('a','z');
$toecho=“”;

对于同一行中的($i=0;$i2个错误
$ap=$ap[i];
to
$ap=$alphas[$i];

[i] ->无常数i $ap=$ap->您高估了$ap变量

代码:

    $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;
        }
$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;
$alphas=范围('a','z');
$toecho=“”;

对于($i=0;$i您已经覆盖了
$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;
$ap=范围('a','z');
$toecho=“”;

对于($i=0;$i),代码违反了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;
$toecho='';
foreach(数组_切片(范围('a','z'),0,10)为$a){
$toecho.=“
”; } echo$toecho;
以更具可读性的方式执行所需操作。希望能有所帮助。请注意,如果在最后一项之后不需要中断,可以使用“加入”:

$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;
$toecho=内爆('
',数组映射(函数($a){ 返回“”; },数组_切片(范围('a','z'),0,10)); echo$toecho;
什么是$ap[i]…如果数组包含什么?你的$alphas有A到Z,你在循环中唱$ap。用$alphasI替换$ap实际上我首先使用了这个
$ap=array('A','B','C','D','E','F','G','H','i','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Z'))
然后我插入了范围。但是你在循环中覆盖变量
$ap
。你可以在任何地方尝试更新的代码,它不会输出字母表。只是错过了[$i]。@ididdntknewit并覆盖了
$ap
,在同一行中你将echo放入了
ap[i];
而不是
ap[$i]
帮助了覆盖。谢谢@BenjaminPoignant不,我已经自己更正了。你在回答中已经提到了这一点。@Saqueib更新了一个答案,将一个范围切分。最好尽量做到语义上足够。这实际上更出色,但stackoverflow允许我只接受一个答案。但希望如此帮助社区中的其他人。现在它更出色了。希望我有足够的声誉来提高投票率。@mudasobwa awesome+1为什么数组切片?更改范围。为什么${a}?没有动态变量名,使用$a。真的很复杂,没有什么,请检查我的更新答案