我需要循环遍历数据数组并为每个数组值打印一个“递增”字母。我知道我可以这样做:
$array = array(11, 33, 44, 98, 1, 3, 2, 9, 66, 21, 45); // array to loop through
$letters = array('a', 'b', 'c', ...); // array of letters to access
$i = 0;
foreach($array as $value) {
echo $letters[$i++] . " - $value";
}
似乎应该有一种比创建字母数组更好的方法。有什么建议吗?
注意 - 我的循环永远不会通过整个字母表,所以我不担心用完字母。
答案 0 :(得分:23)
使用range
功能:
$letters = range('a', 'z');
print_r($letters);
您还可以使用foreach
循环单独处理每个字母:
foreach($letters as $letter) {
echo $letter . '<br />';
}
答案 1 :(得分:20)
$letters = range('a','z');
答案 2 :(得分:8)
就像一个演示(我知道你已经接受了答案),但知道你也可以增加字符变量有时很有用:
$var = 'a';
do {
echo $var++.'<br />';
} while ($var != 'aa');
答案 3 :(得分:3)
for ($counter = ord('a'); $counter <= ord('z'); $counter += 1) {
echo chr($counter) . " - $counter";
}
答案 4 :(得分:3)
你的意思是否有这样的东西?
foreach(range('a','z') as $value)
{
echo $value . ","
}
答案 5 :(得分:3)
我意识到你已经接受并回答了,但我相信这正是你所寻找的:
简单使用增量运算符:
<?php
$array = array("cat","car","far","tar","tag");
// No need for an array, just set $letter to "a", then increment it.
$letter = "a";
foreach($array as $value) {
// Print your letter, then increment it.
echo $letter++ . " - $value\n";
}
?>
使用此方法创建数组的重大优势是您不必担心用完字母,因为您只需要移入双字母:like this。
答案 6 :(得分:0)
如果您使用foreach循环的$key => $value
功能,则不必拥有迭代器:
$letters = range('a', 'z');
foreach($letters as $key => $value)
{
echo $key . '=>' . $value;
}
你甚至可以做到:
foreach(range('a', 'z') as $key => $value)
{
echo $key . '=>' . $value;
}
答案 7 :(得分:0)
添加乐趣...
$array = array(11, 33, 44, 98, 1, 3, 2, 9, 66, 21, 45);
$new_array = array_combine(array_slice(range('a','z'),0,count($array)),$array);
foreach($new_array as $k=>$v){
echo "$k - $v";
}