Прокрутите массив данных и напечатайте букву "incrementing"

Мне нужно пройти через массив данных и напечатать букву "incrementing" для каждого значения массива. Я знаю, что могу это сделать:

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

Кажется, что должен быть лучший способ создать массив алфавита. Любые предложения?

Примечание. Моя петля никогда не пройдет через весь алфавит, поэтому меня не беспокоит истечение букв.

Ответ 1

$letters = range('a','z');

Ответ 2

Используйте функцию range:

$letters = range('a', 'z');
print_r($letters);

Вы также можете использовать цикл foreach для каждой буквы отдельно:

foreach($letters as $letter) {
    echo $letter . '<br />';
}

Ответ 3

Как демонстрация (я знаю, что вы уже приняли ответ), но иногда полезно знать, что вы также можете увеличивать символьные переменные:

$var = 'a';
do {
   echo $var++.'<br />';
} while ($var != 'aa');

Ответ 4

for ($counter = ord('a'); $counter <= ord('z'); $counter += 1) {
    echo chr($counter) . " - $counter";
}

Ответ 5

Вы имели в виду что-то похожее на это?

foreach(range('a','z') as $value)
{
  echo $value . ","
}

Ответ 6

Я понимаю, что вы уже приняли и ответили, но я считаю, что это то, что вы ищете:

Простое использование оператора инкремента:

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

Посмотрите на него в прямом эфире.

Большое преимущество использования этого метода над созданием массива состоит в том, что вам не нужно беспокоиться о том, чтобы закончиться буквы, поскольку вы просто переходите к двойным буквам: как это.

Ответ 7

Вам не нужно иметь итератор, если вы используете функциональность $key => $value цикла foreach:

$letters = range('a', 'z');

foreach($letters as $key => $value)
{
    echo $key . '=>' . $value;
}

Вы даже можете просто сделать:

foreach(range('a', 'z') as $key => $value)
{
    echo $key . '=>' . $value;
}

Ответ 8

Добавить для удовольствия...

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