|
|
|
PHP - размерность массива, заполнение массива
|
|||
|---|---|---|---|
|
#18+
Подскажите, плиз, как в ПХП: 1. Узнать размерность массива. Имеется ввиду: одномерный, двумерный, трехмерный,... 2. Есть ли способ создания/заполнения многомерного массива одним значением, кроме как использования циклов for/foreach: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2012, 04:16:28 |
|
||
|
PHP - размерность массива, заполнение массива
|
|||
|---|---|---|---|
|
#18+
dar3000, 1. - http://stackoverflow.com/a/145348 - http://www.php.net/manual/ru/function.count.php#84482 2. Код: php 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2012, 05:54:41 |
|
||
|
PHP - размерность массива, заполнение массива
|
|||
|---|---|---|---|
|
#18+
Usman, 1. Понятно, то бишь - ручками 2. На array_fill смотрел. В принципе, то же самое что и с for - повторять столько раз сколько размерность массива. Только с for, имхо, понагляднее будет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2012, 08:24:39 |
|
||
|
PHP - размерность массива, заполнение массива
|
|||
|---|---|---|---|
|
#18+
3. Имеем 3-х мерный массив $m[0][0][0]=1; $m[0][0][1]=2; почему count($m) дает 1, а count($m,COUNT_RECURSIVE) дает 4? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2012, 08:48:19 |
|
||
|
PHP - размерность массива, заполнение массива
|
|||
|---|---|---|---|
|
#18+
dar30003. Имеем 3-х мерный массив $m[0][0][0]=1; $m[0][0][1]=2; почему count($m) дает 1, а count($m,COUNT_RECURSIVE) дает 4? а почему должно быть иначе? Код: sql 1. 2. 3. 4. 5. 6. 7. 8. а count($m,COUNT_RECURSIVE) даст размер учитывая все вложенные подмассивы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2012, 09:05:17 |
|
||
|
PHP - размерность массива, заполнение массива
|
|||
|---|---|---|---|
|
#18+
dar3000Usman, 2. На array_fill смотрел. В принципе, то же самое что и с for - повторять столько раз сколько размерность массива. Только с for, имхо, понагляднее будет для такого придумана рекурсия функция с циклом да и все. Но могут возникнуть проблемы, если в каком то вложенном массиве будет ссылка на родителя ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2012, 18:56:22 |
|
||
|
PHP - размерность массива, заполнение массива
|
|||
|---|---|---|---|
|
#18+
dar3000Только с for, имхо, понагляднее будет Код: php 1. 2. 3. 4. 5. 6. 7. 8. 9. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2012, 19:41:15 |
|
||
|
PHP - размерность массива, заполнение массива
|
|||
|---|---|---|---|
|
#18+
r uа почему должно быть иначе? Ожидаемый результат должен быть 2. Видимо, все функции обработки массивов в php не понимают многомерные массивы. r uа count($m,COUNT_RECURSIVE) даст размер учитывая все вложенные подмассивы Имхо, count возвращает не размер, а число элементов массива. Ассоциативность массивов в пхп, с одной стороны, неплохая вещь, но с другой размерность массива сливается с его элементами. Как-то нехорошо, имея матрицу 2х2, получать число ее элементов 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2012, 08:59:53 |
|
||
|
PHP - размерность массива, заполнение массива
|
|||
|---|---|---|---|
|
#18+
dar3000Ожидаемый результат должен быть 2 ожидаемый только вами. я же специально показал вам представление описанного вами массива Код: php 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. итого. внешний массив содержит в себе только ОДИН элемент-массив ВСЕГО вложенных элементов 4. все это вам функция count() и посчитала. все логично. dar3000Имхо, count возвращает не размер, а число элементов массива. размер массива - это и есть кол-во элементов. dar3000Как-то нехорошо, имея матрицу 2х2, получать число ее элементов 6. COUNT_RECURSIVE флаг делает ровно то что должен, а не то что вы от него хотите. а вы хотите чтото такое, как я понял Код: php 1. 2. 3. 4. 5. 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2012, 09:56:23 |
|
||
|
PHP - размерность массива, заполнение массива
|
|||
|---|---|---|---|
|
#18+
r uя же специально показал вам представление описанного вами массива Я это понял r uразмер массива - это и есть кол-во элементов. А вот с этим трудно согласиться. Возможно, надо было вместо слова размер использовать слово размерность. Имхо, это очевидно. Зря сократил. Для меня размерность массива это не то же самое что и количество элементов. Возьмем одномерный массив - вектор, состоящий из 10 чисел. Разве вы будете прибавлять к числу элементов размерность массива? Т.е. вместо ожидаемого числа 10, вы получаете 11? Разве так? Ведь и я не зря привел пример матрицы 2х2=4, тогда как COUNT_RECURSIVE выдает 6. Чем одно измерение отличается от другого? "Тут читаем, а тут не читаем..." То что многомерные массивы в пхп представляют из себя массивы массивов, не дает оснований валить в кучу размерность и количество элементов и считать 2х2=6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2012, 07:50:28 |
|
||
|
PHP - размерность массива, заполнение массива
|
|||
|---|---|---|---|
|
#18+
dar3000, в php НЕТ многомерных массивов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2012, 08:16:55 |
|
||
|
PHP - размерность массива, заполнение массива
|
|||
|---|---|---|---|
|
#18+
dar3000Для меня размерность массива это не то же самое что и количество элементов. Возьмем одномерный массив - вектор, состоящий из 10 чисел. Разве вы будете прибавлять к числу элементов размерность массива? Т.е. вместо ожидаемого числа 10 , вы получаете 11? Разве так? Ведь и я не зря привел пример матрицы 2х2=4 , тогда как COUNT_RECURSIVE выдает 6. я так и думал. вы путаетесь в терминологии. и вообще живете в каком-то ВАШЕМ мире, в котором размерность массива 2х2=4, а размерность одномерного 10. WIKIРазмерность массива — количество индексов, которые необходимо задать одновременно для доступа к элементу массива. например в НАШЕМ мире, размерность массива 2х2 всегда была равна 2. а плоский массив из 10 чисел - имеет размерность 1. так вот. вы сначала разберитесь в теории того что вы хотите. а то мы тут вам пытаемся помоч в решении одного, а вы оказывается ожидаете совсем другого ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2012, 09:04:20 |
|
||
|
PHP - размерность массива, заполнение массива
|
|||
|---|---|---|---|
|
#18+
r u, я, однако, нигде не утверждал, что матрица 2х2 имеет размерность отличную от двух. Всего лишь, что количество элементов такой матрицы равно 4. В то время как функция пхп count выдает 6 элементов. Что здесь непонятного? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2012, 08:15:48 |
|
||
|
PHP - размерность массива, заполнение массива
|
|||
|---|---|---|---|
|
#18+
r u, добавлю расшифровку записи о матрице 2х2=4, боюсь опять не поймете, хотя тут все элементарно: 2 - это размерность матрицы (массива) 2х2 - это число элементов в строках/столбцах 4 - это итоговое число элементов матрицы (2 элемента строки + 2 элемента столбца = итого 4 элемента) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2012, 08:28:14 |
|
||
|
PHP - размерность массива, заполнение массива
|
|||
|---|---|---|---|
|
#18+
dar3000, count выдает не размер матрицы, потому что в PHP вообще нет матриц. Что здесь непонятного? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2012, 08:31:23 |
|
||
|
PHP - размерность массива, заполнение массива
|
|||
|---|---|---|---|
|
#18+
?dar3000, count выдает не размер матрицы, потому что в PHP вообще нет матриц. Что здесь непонятного? это мне понятно уже давно. Пожалуйста, читайте внимательнее: dar3000...Имхо, count возвращает не размер, а число элементов массива.... Мне непонятно, зачем мешать в кучу элементы и размерность, что фактически делает count с опцией COUNT_RECURSIVE? Для куба (3-х мерный массив) число элементов равно 27 (3х3х3=27) А что выдает count? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2012, 08:54:13 |
|
||
|
PHP - размерность массива, заполнение массива
|
|||
|---|---|---|---|
|
#18+
По первому вопросу навскидку Код: php 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2012, 08:58:42 |
|
||
|
PHP - размерность массива, заполнение массива
|
|||
|---|---|---|---|
|
#18+
?dar3000, в php НЕТ многомерных массивов. Тоже стал склоняться к такому выводу. Хотя, почему пытался что-то сказать: http://www.php.su/learnphp/datatypes/?array тут говориться что есть многовмерные массивы, а также простые и ассоциативные. Но на поверку получается, что все массивы в пхп ассоциативные. По этой ссылке приведен пример простого многомерного массива: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. как видим число элементов 8 count($arr,COUNT_RECURSIVE) дает 11. Тогда либо массив не простой, либо он не многомерный (о чем говорили выше), а ассоциативный, просто ассоциативность носит неявный характер. А то говорим одно, а получаем иное ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2012, 09:25:57 |
|
||
|
PHP - размерность массива, заполнение массива
|
|||
|---|---|---|---|
|
#18+
dar3000, вы с C++ знакомы? Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. если к элементам некоего объекта можно обращаться с помощью пары индексов, это еще не значит, что этот объект - двумерный массив. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2012, 09:34:00 |
|
||
|
PHP - размерность массива, заполнение массива
|
|||
|---|---|---|---|
|
#18+
dar3000, вам уже неоднократно сказали что: - в пхп НЕТ МНОГОМЕРНЫХ МАССИВОВ И МАТРИЦ!!!! - count($arr,COUNT_RECURSIVE) считае кол-во ВСЕХ элементов массива и подмассивов Выводы: - count($arr,COUNT_RECURSIVE) - вам НЕ ПОМОЖЕТ! - давно бы написали свою функцию и не парили мозг себе и людям ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2012, 10:00:49 |
|
||
|
PHP - размерность массива, заполнение массива
|
|||
|---|---|---|---|
|
#18+
r uа вы хотите чтото такое, как я понял Код: php 1. 2. 3. 4. 5. 6. другой вариант Код: php 1. 2. 3. 4. 5. 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2012, 10:01:36 |
|
||
|
PHP - размерность массива, заполнение массива
|
|||
|---|---|---|---|
|
#18+
r udar3000, - count($arr,COUNT_RECURSIVE) - вам НЕ ПОМОЖЕТ! - давно бы написали свою функцию и не парили мозг себе и людям А разве я просил написать функцию? Извините, но мозг я себе не парю. И разве моя вина, что вы порой неверно понимаете смысл сказанного мною и отправляете учить некую теорию, как например, на вышеуказанной ссылке, где прямо говориться, что в пхп есть многомерные массивы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2012, 10:28:26 |
|
||
|
|

start [/forum/topic.php?fid=23&fpage=133&tid=1464639]: |
0ms |
get settings: |
10ms |
get forum list: |
17ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
42ms |
get topic data: |
9ms |
get forum data: |
3ms |
get page messages: |
57ms |
get tp. blocked users: |
2ms |
| others: | 242ms |
| total: | 390ms |

| 0 / 0 |
