Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > JavaScript, Ajax
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.03.2014, 00:08   #1
Illusiony
Форумчанин
 
Регистрация: 17.02.2014
Сообщений: 881
По умолчанию Как узнать длину двумерного массива?

Допустим имеется массив
Код:
                        $t['1']['1']=$coord_x[1];
			$t['1']['2']=$coord_y[1];
			$t['1']['3']=$rotate[1];
                        $t['1']['4]=$rotate[8];
			$t['2']['4']=$coord_x[2];
			$t['2']['5']=$coord_y[2];
			$t['2']['6']=$rotate[2];
			$t['3']['7']=$coord_x[3];
			$t['3']['8']=$coord_y[3];
			$t['3']['9']=$rotate[3];
			$t['4']['10']=$coord_x[4];
			$t['4']['11']=$coord_y[4];
			$t['4']['12']=$rotate[4];
Никак не могу узнать сколько элементов содержит $t['1']?
Понятно что 3, но не применимы обычные конструкции .length
Код:
 $t['1'].length
Как объект также не получается. Размер каждого $t может быть разный . В примере $t[1] включает 4 значения , а все остальные по 3

Посоветуйте.

Последний раз редактировалось Illusiony; 05.03.2014 в 00:14.
Illusiony вне форума Ответить с цитированием
Старый 05.03.2014, 00:15   #2
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,156
По умолчанию

Так то у вас 12 элементов. Используййте обьекты, координаты и угол как свойства, тогда массив из трех обьектов будет
ADSoft вне форума Ответить с цитированием
Старый 05.03.2014, 08:20   #3
Naive
Раздолбайских Дел
Старожил
 
Аватар для Naive
 
Регистрация: 22.05.2009
Сообщений: 3,828
По умолчанию

Ты создаешь ассоциативный массив (с текстовыми ключами), даже на основе массива будет выдаваться длина в нуль.
Если же задавать
Код:
$t[1][1] = 'blabla';
массив все равно будет начинаться с нуля, значение первого (с индексом 0) элемента будет undefined. Таким образом элементов будет показано больше, чем надо.
В четвертой строке у тебя, кстати syntaxError.
Цитата:
Так то у вас 12 элементов. Используййте обьекты, координаты и угол как свойства, тогда массив из трех обьектов будет
+1, тоже слыхал, что кто-то тут недавно ООП изобрел =)
Alar, верни репу!
Naive вне форума Ответить с цитированием
Старый 05.03.2014, 23:05   #4
Illusiony
Форумчанин
 
Регистрация: 17.02.2014
Сообщений: 881
По умолчанию

допустим имеем на php
Код:
<?php
$json_data = array ('id'=>1,'name'=>"ivan",'country'=>'Russia',"office"=>array("yandex"," management"));
echo json_encode($json_data);
?>
html:
Код:
function zapros()
				{
				
							 $.ajax({url:"new_5.php", 
								 data:{ },
								 success:function(result){
									
									name_sector=JSON.parse (result).length;
									
									s_1_name=JSON.parse (result)["office"].length;
									
									document.test.input_text.value=name_sector;
									document.test.input_text1.value=s_1_name;
									
									}
							  });
				
						   }
так вот длину вложенного массива узнаю, а вот ко всему ответу (name_sector) undefined
Illusiony вне форума Ответить с цитированием
Старый 06.03.2014, 00:13   #5
Naive
Раздолбайских Дел
Старожил
 
Аватар для Naive
 
Регистрация: 22.05.2009
Сообщений: 3,828
По умолчанию

потому что это ассоциативный массив, у него нет длины.
а "длину вложенного массива узнаю" — это массив, у него есть длина.
Код:
var a = [];
a[100] = 1;
a.length;
>> 101
длина массива тоже вещь относительная.
Правильное заполнение/удаление элементов идет через внутренние свойства.
Хочешь посчитать кол-во ключей?
Код:
var a = {a:1,b:2,c:3};
var s = 0; 
for (var i in a) 
  {s++;}
console.log(s);
>> 3
но это работает только на обычные объекты. Если такие используются, то код уже должен знать какой ключ ему нужен из этого массива, и естественно изначально известно их количество.
Это так же как дебилы юзают
Код:
SELECT * FROM `my_table`
а потом думают, какие же поля из таблицы им нужны...
Alar, верни репу!
Naive вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
передача двумерного массива как параметра функции Yulia_sko.kz Помощь студентам 0 31.03.2012 15:15
Как обнулить элементы строки двумерного массива, содержащей наибольшее количество элементов одномерного массива griignat Помощь студентам 1 22.11.2011 20:04
Как узнать длину текста в пикселях Don Karleone Общие вопросы Delphi 5 16.10.2010 15:51
Как узнать длину String MasterofCDM Общие вопросы Delphi 3 25.02.2009 14:02
Работа с TImage-как установить длину массива TRGBTriple? Саня Компоненты Delphi 1 04.08.2007 11:15