Php 从数组返回字母表:for循环不工作
动机:我想使用数组从a-z获得所有APLPHBET 进展:到目前为止,我尝试过的事情是 代码: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
$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。真的很复杂,没有什么,请检查我的更新答案