循环遍历数据数组并打印“递增”字母

时间:2010-08-04 17:58:07

标签: php

我需要循环遍历数据数组并为每个数组值打印一个“递增”字母。我知道我可以这样做:

$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";
}

似乎应该有一种比创建字母数组更好的方法。有什么建议吗?

注意 - 我的循环永远不会通过整个字母表,所以我不担心用完字母。

8 个答案:

答案 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";
}
?>

Look at it live.

使用此方法创建数组的重大优势您不必担心用完字母,因为您只需要移入双字母: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";
    }