Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.90/58: Рейтинг темы: голосов - 58, средняя оценка - 4.90
0 / 0 / 0
Регистрация: 29.10.2009
Сообщений: 40

Как узнать длину подмассива многомерного массива?

02.04.2010, 10:10. Показов 11199. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день)

Подскажите пожалуйста, как можно узнать длину подмассива многомерного массива?
Т.е. у меня есть массив
arr[0][1]
arr[1][1]
arr[0][2]
arr[1][2]
arr[2][2]
arr[3][2]
arr[0][3]

а мне нужно узнать длину массива arr[][2] ?

PS: count(arr[][2]) выдает ошибку, а count(arr[2]) выдает количество элементов arr[2][]...
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
02.04.2010, 10:10
Ответы с готовыми решениями:

Из подмассива item вывести массив с самым большим значением ключа
Здраствуйте ребят, помогите решить пожалуйста задачку на PHP. Условие: Дан массив Array ( => Array ( ...

Выбор массива из многомерного массива по ключу
$array = array( array( 'id'=>'1', 'value'=>'Значение 1', ), array( 'id'=>'2', ...

Объединение структуры многомерного массива и данных обномерного массива
/** Объявлена некая структура. Вложенность не ограничена */ $structure = , 'category' => ] ]; /** Получены данные такого вида...

9
 Аватар для GalaX
701 / 573 / 59
Регистрация: 18.11.2008
Сообщений: 2,147
02.04.2010, 10:36
arr[][2]
такого массива (либо элемента массива) не может быть

я так понимаю тебе нужно узнать кол-во элементов с индексом [2] во всех массивах arr[0], arr[1], arr[2] и т.д. ? или нет?
0
 Аватар для Dimedrol
2378 / 941 / 129
Регистрация: 25.04.2009
Сообщений: 2,635
Записей в блоге: 4
02.04.2010, 10:39
Я вот что придумал:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php
$i=0;
$arr[0][1]=1;
$arr[1][1]=7;
$arr[0][2]=6;
$arr[1][2]=5;
$arr[2][2]=4;
$arr[3][2]=3;
$arr[0][3]=2;
foreach ($arr as $f1 => $f2)
  {
  foreach ($f2 as $f2 => $pp)
    {
    if($f2==1):
    $i++;
    endif;
    }
  }
print $i;
?>
а count и sizeof тут ,наверно, не сработают. Надо перебирать массив.
if($f2==1): единица -это нужный элемент массива.
2
 Аватар для romchiksoad
1957 / 796 / 89
Регистрация: 03.11.2009
Сообщений: 3,066
Записей в блоге: 2
02.04.2010, 11:19
Если я правельно понял задачу, то вот решение:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
$arr[0][1]=1;
$arr[1][1]=7;
$arr[0][2]=6;
$arr[1][2]=5;
$arr[2][2]=4;
$arr[3][2]=3;
$arr[0][3]=2;
for($i=0;$i<count($arr);$i++){
$count+=count($arr[$i][2]);
}
echo $count."<BR>";
?>
Добавлено через 1 минуту
На будущее: у функции count(); есть один дополнительный не обязательный параметр count($array, COUNT_RECURSIVE);
COUNT_RECURSIVE - возвращает длину многомерного массива
2
 Аватар для Seodaiter
6 / 6 / 0
Регистрация: 21.08.2009
Сообщений: 104
03.04.2010, 08:15
Цитата Сообщение от Irbis Посмотреть сообщение
: count(arr[][2]) выдает ошибку, а count(arr[2]) выдает количество элементов arr[2][]...
Выбери один многоменрый массив, и считай
0
0 / 0 / 0
Регистрация: 26.02.2016
Сообщений: 3
26.02.2016, 12:28
Тема хоть и устарела, но все-равно оставлю свое решение для тех, кто сейчас сталкивается с этим вопросом.

count($array, COUNT_RECURSIVE) - count($array))/count($array)
0
Эксперт PHP
 Аватар для Kerry_Jr
3106 / 2591 / 1219
Регистрация: 14.05.2014
Сообщений: 7,236
Записей в блоге: 1
26.02.2016, 12:32
Totamort, а если все подмассивы разной длины?
0
0 / 0 / 0
Регистрация: 26.02.2016
Сообщений: 3
26.02.2016, 18:06
Kerry_Jr, А вообще, если исходить, что нулевой элемент как минимум всегда есть в любом подмассиве, то можно обычным count все спокойно узнать. Например у нас есть пятимерный массив с разной длиной подмассивов - $array[k1][k2][k3][k4][k5]. Получается -
count($array) - длина k1
count($array[0]) - длина k2
count($array[0][0]) - длина k3
count($array[0][0][0]) - длина k4
count($array[0][0][0][0]) - длина k5

Если в чем-то не прав, то поправь меня.
0
Эксперт PHP
 Аватар для Kerry_Jr
3106 / 2591 / 1219
Регистрация: 14.05.2014
Сообщений: 7,236
Записей в блоге: 1
26.02.2016, 18:12
Цитата Сообщение от Totamort Посмотреть сообщение
Если в чем-то не прав, то поправь меня.
Я задал вопрос конкретно к этому
Цитата Сообщение от Totamort Посмотреть сообщение
PHP
1
count($array, COUNT_RECURSIVE) - count($array))/count($array)
0
0 / 0 / 0
Регистрация: 26.02.2016
Сообщений: 3
26.02.2016, 19:11
Kerry_Jr, Тут согласен. Не сразу понял, что лоханулся.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
26.02.2016, 19:11
Помогаю со студенческими работами здесь

Как сделать Insert многомерного массива в бд
Например есть массив: $output=array(&quot;a&quot;=&gt;1,&quot;b&quot;=&gt;2,&quot;c&quot;=&gt;3); Здесь можно в цикле делать insert каждого массива на каждой итерации...

Как получить ключи всех элементов определённого уровня ассоциативного многомерного массива?
Например, массив: Array( город1 =&gt; Array( склад1 =&gt; Array( яблоки =&gt; 45; бананы =&gt; 23; ) склад2 =&gt; Array( ...

Как найти элемент 1 уровня многомерного массива по значению его элемента 2 уровня?
Есть многомерный массив типа такого: Array ( =&gt; Array ( =&gt; Алексей =&gt; 34 ...

Как отсортировать элементы 1 уровня многомерного массива по значениям 2 уровня?
Доброе время суток. Есть массив фруктов, у каждого элемента есть название и цена. $arr = array( array( 'name' =&gt; 'banana', ...

Как выбрать элемент 1 уровня многомерного массива по значениям 2 уровня?
Доброе время суток. Есть массив фруктов, у каждого элемента есть название и цена. $arr = array( array( 'name' =&gt;...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru