Необходимо присвоить множество значений элементам массива за один раз, но при этом первый индекс не должен быть равен 0.
Прикажите функции array() использовать другой индекс, применив синтаксис =>:
$presidents = array(1 => 'Washington', 'Adams', 'Jefferson', 'Madison');
Массивы в PHP, как и в большинстве, но не во всех, компьютерных
языков, начинают отсчет первого элемента с индекса 0. Однако иногда
хранимые данные имеют больше смысла, если список начинается с 1.
(Здесь мы, конечно, не разговариваем с выздоравливающими программистами на Паскале.)
В приведенном ниже решении Джордж Вашингтон является первым
президентом, а не нулевым, поэтому если необходимо напечатать список президентов, то проще всего сделать это следующим образом:
foreach ($presidents as $number => $president) {
print "$number: $president\n";
}
а не так:
foreach ($presidents as $number => $president) {
$number++;
print "$number: $president\n";
}
Эта функциональность не ограничивается числом 1; годится любое целое:
$reconstruction_presidents = array(16 => 'Lincoln', 'Johnson', 'Grant');
Кроме того, можно использовать символ => много раз в одном вызове:
$whig_presidents = array(9 => 'Harrison', 'Tyler',
12 => 'Taylor', 'Fillmore');
PHP даже разрешает при вызове функции array() использовать отрицательные числа. (В действительности, этот метод работает также и для нецелых ключей.) То, что дает ассоциативный массив в техническом плане, хотя, как мы сказали, граница между числовым и ассоциативным массивом в PHP размыта, показывает еще один пример, наряду с приведенными ранее.
$us_leaders = array( 1 => 'George II', 'George III', 'Washington' );
Если Вашингтон – это первый президент США, то Джордж III является нулевым, а его дедушка Джордж II – минус первым президентом.
Конечно, можно смешивать и ставить в соответствие числовые и строковые ключи в определении одного массива с помощью функции array(), но это сбивает с толку и используется крайне редко:
$presidents = array( 1 => 'Washington', 'Adams', 'Honest' =>
'Lincoln', 'Jefferson' );
Это эквивалентно следующему:
$presidents[1] = 'Washington'; // Key is 1
$presidents[ ] = 'Adams'; // Key is 1 + 1 => 2
$presidents['Honest'] = 'Lincoln'; // Key is 'Honest'
$presidents[ ] = 'Jefferson'; // Key is 2 + 1 => 3