Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Двумерный массив
Форумы портала PHP.SU » » Вопросы новичков » Двумерный массив

Страниц (1): [1]
 

1. romantik2011 - 06 Августа, 2011 - 21:27:23 - перейти к сообщению
Можно создать одномерный массив, всё нормально, вот так:
PHP:
скопировать код в буфер обмена
  1.  
  2. $cars = array(
  3.                            "model" =>'X5',
  4.                            "speed" =>120,
  5.                            "doors" =>5,
  6.                            "year" =>'2006'
  7. );
  8.  
  9. echo $cars['doors']; //Выводим элемент массива
  10.  


Вот смутил такой двумерный массив.
PHP:
скопировать код в буфер обмена
  1.  
  2. $cars['bmw'] = array(
  3.                            "model" =>'X5',
  4.                            "speed" =>120,
  5.                            "doors" =>5,
  6.                            "year" =>'2006'
  7. );
  8.  
  9. echo $cars['bmw']['year'];
  10.  


Какой смысл если написать его вот так? Как это на картинке примерно будет выглядеть этот двумерный
я имею ввиду $cars?. Получается весь массив состоит из одного элемента, который тоже массив и всё?
2. LIME - 06 Августа, 2011 - 21:34:01 - перейти к сообщению
romantik2011 пишет:
Получается весь массив состоит из одного элемента, который тоже массив и всё?
да
(Добавление)
бессмысленный вопрос
переформулируйте
3. White - 06 Августа, 2011 - 21:39:24 - перейти к сообщению
romantik2011 используйте ооп, тут ему самое место
4. LIME - 06 Августа, 2011 - 21:43:11 - перейти к сообщению
White пишет:
используйте ооп, тут ему самое место
поясните пжлст
невижу причин городить ооп
5. White - 06 Августа, 2011 - 22:07:26 - перейти к сообщению
LIME классический пример, класс car, у него публичные свойства model, speed, doors, year, producer
естественно что данные должны где-то храниться (бд, файл, сторонний сервер), и при этом иметь какой-то идентификатор, добавляем статичный метод get($id) и делаем приватным конструктор, наверное надо так-же туда записывать, делаем метод write(),
добавляем статичный метод show($property, $value), чтобы отобразить все объекты с заданным свойством
...
(Добавление)
кстати о причинах, как правило везде где можно провести паралель с окружающим миром, ооп оказывается очень кстати
6. LIME - 07 Августа, 2011 - 00:32:00 - перейти к сообщению
White незря есть мнение что нельзя изучать паттерны без опыта в ооп
вы кому и о чем говорите?
человек только изучает пхп
у него конкретный вопрос о массивах
причем до конца не понятно что ему не ясно
я уважаю ваше мнение и готов признать что вы знаете пхп и остальное серверное дело лучше чем я
но тут вы просто из пушки по воробьям
переубедите меня
спасибо
7. White - 07 Августа, 2011 - 08:47:06 - перейти к сообщению
LIME а где здесь паттерны. такая реализация класса:
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. class car {
  3.   public $model;
  4.   public $speed;
  5.   public $doors;
  6.   public $year;
  7.  
  8.   public function __construct($model, $speed, $doors, $year) {
  9.     $this->model=$model;
  10.     $this->speed=$speed;
  11.     $this->doors=$doors;
  12.     $this->year=$year;
  13.   }
  14. }
  15.  


во многом упростит логику кода в последующем. разве для вас не очевидно, что если есть двумерный ассоциативный массив, при этом второй набор индексов повторяется для каждого первого, то его гораздо правильнее преобразовать в массив объектов с одинаковыми свойствами, а значит экземпляров одного и того же класса.
разве $bmw->year не проще и понятней чем $car['bmw']['year']
по поводу своего примера. я лишь развил тему дальше, чтобы показать, что в дальнейшем такой код может развиваться
(Добавление)
LIME пишет:
человек только изучает пхп
у него конкретный вопрос о массивах
причем до конца не понятно что ему не ясно
вопрос скорее в том, что ему самому не нравится такой подход, но как сделать иначе он не понимает.
LIME пишет:
я уважаю ваше мнение и готов признать что вы знаете пхп и остальное серверное дело лучше чем я
не стоит так однозначно преувеличивать. я не злой Закатив глазки, и не кусаюсь

 

Powered by ExBB FM 1.0 RC1