Какова наилучшая практика в многомерной структуре массива с точки зрения того, какие элементы содержат итератор и элементы детали?
Большая часть моего опыта программирования (и я делаю это в основном для удовольствия) исходит из следующих руководств по Google, поэтому я заранее извиняюсь, если это кажется исключительно глупым вопросом, но я хочу начать улучшать свой код.
Всякий раз, когда мне нужно создавать многомерный массив, мое имя всегда помещало счетчик в первый элемент.
Например, если у меня есть одномерный массив следующим образом:
$myArray['year']=2012;
$myArray['month']='July';
$myArray['measure']=3;
// and so on.
Однако, если бы я хотел, чтобы тот же массив содержал несколько владельцев истории, я бы добавил другое измерение и отформатировал его следующим образом:
$myArray[$owner]['year']=2012;
$myArray[$owner]['month']='July';
$myArray[$owner]['measure']=3;
Изменить: чтобы убедиться, что мой пример не отложен или не ведет в правильном направлении, я в основном следую этой структуре:
$myArray[rowOfData][columnOfData]
Теперь, мой вопрос о принятой конвенции. Должен ли я делать следующее?
$myArray['year'][$owner]=2012;
$myArray['month'][$owner]='July';
$myArray['measure'][$owner]=3;
Изменить: используя это редактирование сверху, должно ли оно быть:
$myArray[columnOfData][rowOfData]
Я искал соглашения об именах массивов, но продолжаю приводить статьи о том, следует ли указывать массивы как множественные числа или нет. То, как я назвал их, кажется более логичным, и я думаю, что это следует за структурой, которая лучше напоминает объект, т.е. object->secondaryLevel->detail
, но для всех, кого я знаю, я все время занимаюсь этим. Поскольку я все больше и больше занимаюсь программированием, я бы предпочел изменить свои привычки, если они ошибаются.
Есть ли принятый стандарт или все идет с массивами? Если бы вы искали код, написанный кем-то другим, какой формат ожидал бы? Я понимаю, что любая структура, которая имеет смысл/интуитивно понятна, принимается.
Также с точки зрения итерации, какая из следующих функций более интуитивная?:
for($i=0;$i<$someNumber;$i++)
{
echo $myArray[$i]['year'];
// OR
echo $myArray['year'][$owner];
}
Изменить: у меня был этот пост с тегами как С# и Java, потому что я хотел получить некоторые мнения за пределами PHP-программистов. Я думаю, что, поскольку массивы используются на многих разных языках, было бы полезно получить некоторый вклад от программистов в разных языках.