Работает ли foreach () для нечисловых ключей массива?

Мне было интересно, работает ли foreach (), когда массив выглядит так:

  • arr_name [eggs] = что-то
  • arr_name [карандаш] = что-то еще

Будет ли работать foreach, если выполняется как:

foreach(arr_name as $key => $value) 

для ключей, которые имеют нечисловое значение?

Да, foreach поддерживает любой тип ключа. В вашем случае $key будет представлять собой строку, 'eggs' и 'pencil' соответственно для каждого элемента. Фактически, foreach был предназначен для использования с массивами, которые имеют нечисловые ключи, которые вы не можете легко использовать for использования.

Да, PHP не имеет реального различия между массивами с числовыми и нечисловыми ключами. Все они просто массивы, относящиеся к PHP.

Да, объяснение, данное BoltClock, верно, и я предлагаю вам вручную попробовать. Вы пропустили $ до имени массива в инструкции foreach

foreach ($ arr_name как $ key => $ value) echo $ value?>