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
Форумы портала PHP.SU :: Версия для печати :: Разбор двумерного массива
Форумы портала PHP.SU » » Хранение данных, их вывод и обработка » Разбор двумерного массива

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

1. Alisandres - 19 Мая, 2011 - 11:47:56 - перейти к сообщению
Добрый час форумчане! замечался с одним массивом...

Есть двумерный массив типа
$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]

Вопрос как?
2. EuGen - 19 Мая, 2011 - 11:51:41 - перейти к сообщению
У Вас индексы в one и two одинаковые, стало быть при каждой итерации значения должны заменяться?
Вообще, что-то мне подсказывает, что первоначальная задача была не в этом, а эта задача возникла из-за выбора неправильного подхода в решении первоначальной.
3. OrmaJever - 19 Мая, 2011 - 11:54:06 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1. foreach($array as $k => $v)
  2. {
  3.      // $k  будет one или two
  4.     echo $v['name'], '-', $v['year'];
  5. }
4. DeepVarvar - 19 Мая, 2011 - 12:28:26 - перейти к сообщению
EuGen пишет:
задача возникла из-за выбора неправильного подхода в решении первоначальной
Полностью согласен с этим предположением.
OrmaJever в тему.
Исходный массив ДОЛЖЕН иметь вид:

$array[] = array("name" => "Вася", "age" => 27, "someproperties" => "somevalue",.......);
5. Alisandres - 19 Мая, 2011 - 12:42:17 - перейти к сообщению
OrmaJever

Спасибо, еще раз посмотрев ваш пример я нашел ошибку с воем коде. Исправив ее, код начал работать на "ура". Банально - замылил глазки, индексы местами перепутал.
6. vlados - 19 Мая, 2011 - 12:45:40 - перейти к сообщению
[Удалено] Из строки можно вычесть число! Однако Не понял Не понял Не понял
7. OrmaJever - 19 Мая, 2011 - 13:18:45 - перейти к сообщению
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));
8. Alisandres - 19 Мая, 2011 - 13:40:24 - перейти к сообщению
OrmaJever
Прав совершенно.

 

Powered by ExBB FM 1.0 RC1