|
|
|
| В каких случаях лучше (ах, блиин, еще и вопрос не дописал - а ответ уже и сам, КАЖИСЬ, сообразил) использовать неассоциативные\ассоциативные массивы?
Неассоциативные массивы используются в циклах, там где нужно выводить много данных и переменная-указатель на элемент массива изменяется в цикле.
А ассоциативные массивы лучше читаются в коде.
---
Какая еще разница между этими типами массивов? или разница только в способе обращения в коде к ним (к массивам)?
---
Надо было в ветке о php писать. | |
|
|
|
|
|
|
|
для: root_xxx
(09.12.2014 в 02:13)
| | а в каких случаях надо есть хлеб, а в каких булку?
____
для циклов используется foreach(), также есть огромная куча операторов и функций для работы с массивами | |
|
|
|
|
|
|
|
для: Valick
(09.12.2014 в 08:20)
| | [off]булка вкуснее[/off] | |
|
|
|
|
|
|
|
для: root_xxx
(09.12.2014 в 16:46)
| | Ой не факт.
С борщом, к примеру, черный ржаной хлеб вне конкуренции.
Так что все зависит от контекста.
К слову сказать, в php массив с численными индексами от ассоциативного практически ничем не отличается | |
|
|
|
|
|
|
|
для: Trianon
(09.12.2014 в 18:33)
| | С борщем вне конкуренции черная горбушка обильно натертая чесноком ) | |
|
|
|
|
|
|
|
для: root_xxx
(09.12.2014 в 02:13)
| | Как таковой разницы нет, но работая с индексным массивом нужно обязательно знать под каким индексом содержаться данные, грубо говоря порядок этих данных. Для ассоциативных такого неудобства нет.
Выбирают не по принципу какой "красивее", а какой удобнее. Если необходимым образом подготовили данные, то есть заведомо упорядочили их, и применяем к ним функции, которые работают с "порядком" этой структуры данных, то в ассоциации надобности нет.
Нужно знать, что при различных операциях с массивами результат может зависеть как раз от того какой массив, индексный или ассоциативный. И это относится не только к РНР. Например, есть две таблицы в которых есть поля с одинаковыми именами: id и name. Если выбрать записи из этих таблиц таким запросом:
'SELECT * FROM tbl1, tbl2'
|
то при получении ассоциативных данных вернутся данные только второй таблицы, а если запрашивать индексные данные, то обеих. | |
|
|
|
|
|
|
|
для: confirm
(09.12.2014 в 19:41)
| | спс. это важно. (я незнал этого).
ДОписываю: Хотя я изначально избегаю совпадения имен полей в разных таблицах. Я раньше писал что ид пользователя в таблица ПОСТЫ называется uid_in_posts. Так понятнее что это за ИД такой, и где он размещен. | |
|
|
|
|
|
|
|
для: confirm
(09.12.2014 в 19:41)
| | очень интересно почему вернутся данные второй таблицы, а не первой. Но это наверное особенности работы самого мскл ??? Возможно эти поля (из первой таблицы) будут перезаписаны полями со второй таблицы. | |
|
|
|
|
|
|
|
для: root_xxx
(04.01.2015 в 13:29)
| | Это особенности "особенностей" )
Не может массив иметь двух и более одинаковых ключей, поэтому в итоге (и не только в MySQL, открывайте раздел функций работы с массивами в РНР, и читайте), если встретился ключ "nfmt1", он и его значение будет помещено в ресурс возвращаемый. Но если дальше опять попадется ключ с этим же именем, то по условию оговоренному выше, предыдущее значение этого ключа будет заменено значением вновь попавшегося ключа.
Но если это не ассоциативный набор, а индексный, то в массив (в ресурс возвращаемый) этот элемент будет добавлен следующим по порядку индексом. | |
|
|
|
|
|
|
|
для: confirm
(04.01.2015 в 15:09)
| | О том что два одинаковых ключа не может быть (в ОДНОМ массиве) - то это понтяно. Значит оно перезапишется - ПОКА что ничего такого особенного тут не вижу. НО раньше я этого не мог понять. понял только пару часов назад. :) | |
|
|
|