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

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Разбор двумерного массива

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Без описания
Alisandres
Отправлено: 19 Мая, 2011 - 11:47:56
Post Id



Новичок


Покинул форум
Сообщений всего: 32
Дата рег-ции: Авг. 2009  


Помог: 0 раз(а)




Добрый час форумчане! замечался с одним массивом...

Есть двумерный массив типа
$array[one][name] = "Петя"
$array[one][year] = "12"
$array[two][name] = "Вася"
$array[two][year] = "14"
и так далее.

Задача, разобрать массив и выводить что то типа такого
{
$name = $var[name];
$year = $var[year]
echo ("$name - $year"); //и другие манипуляции, сложение возраста, вычисление среднего...
}

для каждой группы элементов $array[one] или $array[two]

Вопрос как?
 
 Top
EuGen Администратор
Отправлено: 19 Мая, 2011 - 11:51:41
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




У Вас индексы в one и two одинаковые, стало быть при каждой итерации значения должны заменяться?
Вообще, что-то мне подсказывает, что первоначальная задача была не в этом, а эта задача возникла из-за выбора неправильного подхода в решении первоначальной.


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
OrmaJever Модератор
Отправлено: 19 Мая, 2011 - 11:54:06
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




PHP:
скопировать код в буфер обмена
  1. foreach($array as $k => $v)
  2. {
  3.      // $k  будет one или two
  4.     echo $v['name'], '-', $v['year'];
  5. }

(Отредактировано автором: 19 Мая, 2011 - 11:54:26)



-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
DeepVarvar Супермодератор
Отправлено: 19 Мая, 2011 - 12:28:26
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




EuGen пишет:
задача возникла из-за выбора неправильного подхода в решении первоначальной
Полностью согласен с этим предположением.
OrmaJever в тему.
Исходный массив ДОЛЖЕН иметь вид:

$array[] = array("name" => "Вася", "age" => 27, "someproperties" => "somevalue",.......);
 
 Top
Alisandres
Отправлено: 19 Мая, 2011 - 12:42:17
Post Id



Новичок


Покинул форум
Сообщений всего: 32
Дата рег-ции: Авг. 2009  


Помог: 0 раз(а)




OrmaJever

Спасибо, еще раз посмотрев ваш пример я нашел ошибку с воем коде. Исправив ее, код начал работать на "ура". Банально - замылил глазки, индексы местами перепутал.

(Отредактировано автором: 19 Мая, 2011 - 12:50:06)

 
 Top
vlados
Отправлено: 19 Мая, 2011 - 12:45:40
Post Id



Посетитель


Покинул форум
Сообщений всего: 391
Дата рег-ции: Май 2011  


Помог: 1 раз(а)

[+][+][+]


[Удалено] Из строки можно вычесть число! Однако Не понял Не понял Не понял


Отредактировано модератором: Uchkuma, 19 Мая, 2011 - 12:54:11
У нас не матерятся
 
 Top
OrmaJever Модератор
Отправлено: 19 Мая, 2011 - 13:18:45
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




DeepVarvar пишет:
Исходный массив ДОЛЖЕН иметь вид:

$array[] = array("name" => "Вася", "age" => 27, "someproperties" => "somevalue",.......);

Ну почему же имено так? Масив из первого примера правельный
EuGen пишет:
У Вас индексы в one и two одинаковые, стало быть при каждой итерации значения должны заменяться?

Нет они не заменяются а дописываются
PHP:
скопировать код в буфер обмена
  1. $array['one']['name'] = "Петя";
  2.  $array['one']['year'] = "12";
  3.  $array['two']['name'] = "Вася";
  4.  $array['two']['year'] = "14";
  5. // тоже самое что
  6. $array = array('one' => array('name' => 'Петя', 'year' => 12),
  7.                'two' => array('name' => 'Вася', 'year' => 14));

(Отредактировано автором: 19 Мая, 2011 - 13:19:43)



-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
Alisandres
Отправлено: 19 Мая, 2011 - 13:40:24
Post Id



Новичок


Покинул форум
Сообщений всего: 32
Дата рег-ции: Авг. 2009  


Помог: 0 раз(а)




OrmaJever
Прав совершенно.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Хранение данных, их вывод и обработка »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB