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]   

> Без описания
anton1990
Отправлено: 10 Августа, 2013 - 20:37:20
Post Id


Новичок


Покинул форум
Сообщений всего: 17
Дата рег-ции: Июль 2013  
Откуда: Деревня Пиндюкино Верхнее


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




Здравствуйте!
Вот массив
PHP:
скопировать код в буфер обмена
  1.  
  2. $abc = array(
  3.  array('name' => 'Иванов', 'age' => 25),
  4.  array('name' => 'Петров', 'age' => 30),
  5.  array('name' => 'Сидоров', 'age' => 35)
  6. );
  7.  

Вот вывод всех значений
PHP:
скопировать код в буфер обмена
  1.  
  2. foreach($abc as $base_key => $base_value) {
  3.  foreach($base_value as $key => $value) {
  4.   echo $value, ' ';
  5.  }
  6. }
  7. /*Иванов 25 Петров 30 Сидоров 35*/
  8.  

Пытаюсь вывести значения по отдельности, но происходит вывод знаков ?
PHP:
скопировать код в буфер обмена
  1.  
  2. foreach($abc as $base_key => $base_value) {
  3.  foreach($base_value as $key => $value) {
  4.   echo $value[0], ' ', $value[1],'<br />';
  5.  }
  6. }
  7. /*
  8. ??
  9. ??
  10. ??
  11. */
  12.  

Подскажите, как вывести значения в нормальном виде.
 
 Top
anton1990
Отправлено: 10 Августа, 2013 - 23:00:58
Post Id


Новичок


Покинул форум
Сообщений всего: 17
Дата рег-ции: Июль 2013  
Откуда: Деревня Пиндюкино Верхнее


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




Видимо, только так. Вариант $value[0] и $value[1] не работает.
PHP:
скопировать код в буфер обмена
  1.  
  2. $abc = array(
  3.  array('name' => 'Иванов', 'age' => 25),
  4.  array('name' => 'Петров', 'age' => 30),
  5.  array('name' => 'Сидоров', 'age' => 35)
  6. );
  7.  
  8. foreach($abc as $key => $value) {
  9.  echo $value['name'], ' ', $value['age'], '<br />';
  10. }
  11.  
  12.  

Иванов 25
Петров 30
Сидоров 35
 
 Top
VestCoastman
Отправлено: 11 Августа, 2013 - 01:58:16
Post Id



Посетитель


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


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




PHP:
скопировать код в буфер обмена
  1. for ($i = 0; $i<count($abc); $i+=4) {
  2.         echo $abc[$i+2].' - '.$abc[$i];
  3. }

Не проверял
 
 Top
avtor.fox
Отправлено: 11 Августа, 2013 - 02:46:15
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2083
Дата рег-ции: Март 2012  
Откуда: Воронеж


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




ой жесть Голливудская улыбка

. (Отобразить)
 
 Top
anton1990
Отправлено: 11 Августа, 2013 - 10:20:46
Post Id


Новичок


Покинул форум
Сообщений всего: 17
Дата рег-ции: Июль 2013  
Откуда: Деревня Пиндюкино Верхнее


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




avtor.fox пишет:
ой жесть Голливудская улыбка

. (Отобразить)


При чем тут жесть???
Вот вывод вложенного массива с помощью вложенного цикла
PHP:
скопировать код в буфер обмена
  1.  
  2. //табличный вывод с помощью цикла foreach как двумерного массива
  3.  
  4. echo '<table>';
  5. echo '<tr>';
  6.  echo '<th>№</th><th>Фамилия</th><th>Возраст</th>';
  7. echo '</tr>';
  8. //счетчик
  9. $i=0;
  10. foreach($abc as $base_key => $base_value) {
  11.  echo '<tr>';
  12.  echo '<td>', $i++, '</td>';
  13.  foreach ($base_value as $key => $value) {
  14.   echo '<td>', $value, '</td>';
  15.  }
  16.  echo '</tr>';
  17. }
  18. echo '</table>';
  19. echo '<br />';
  20.  


№ Фамилия Возраст
0 Иванов 25
1 Петров 30
2 Сидоров 35
 
 Top
avtor.fox
Отправлено: 11 Августа, 2013 - 13:47:03
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2083
Дата рег-ции: Март 2012  
Откуда: Воронеж


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




anton1990 пишет:
Вот вывод вложенного массива с помощью вложенного цикла

Да, простите. У Вас всё элегантно.
 
 Top
unnomen
Отправлено: 15 Марта, 2015 - 13:22:07
Post Id



Новичок


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


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




PHP:
скопировать код в буфер обмена
  1. $abc = array(
  2.  array('name' => 'Иванов', 'age' => 25),
  3.  array('name' => 'Петров', 'age' => 30),
  4.  array('name' => 'Сидоров', 'age' => 35)
  5. );
  6.  
  7. foreach ($abc as $strong)
  8. {
  9.     foreach ($strong as $value)
  10.     {
  11.         echo $value . " ";
  12.     }
  13.    
  14.     echo "<br />";
  15. }
 
 Top
2dmaster
Отправлено: 30 Января, 2016 - 01:33:10
Post Id


Новичок


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


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




Помогите пожалуйста! у меня в коде чуть более сложный массив,
работает неправильно (((

stackoverflow тчк. com/questions/35095372/how-to-ge t-different-count-of-key-php-arr ay-to-table-and Тут выложил код... готов помочь материально срочно
 
 Top
Prizma
Отправлено: 30 Января, 2016 - 02:07:24
Post Id



Посетитель


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


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




Это то что вы там написали...
PHP:
скопировать код в буфер обмена
  1. $array[1] = array("Name1"=> array("2"=>"1460","3"=>"1868","4"=>"2158","5"=>"2537","6"=>"2915","8"=>"3673"));
  2. $array[2] = array("Prod2"=> array("3"=>"3079","4"=>"3625","5"=>"4172","6"=>"4718","8"=>"5811"));
  3. $cnt = 0;
  4. for ($x = 0; $x < 100; $x++) {    
  5.     $product = $array[$x]; // dynamic all product`s - $name
  6.     foreach ($product as $good =>$massiv) {
  7.         $name = key($product);      // prod name
  8.         $proklkadok = array_keys($massiv);  // prod prokladok
  9.         foreach ($massiv as $inner_key =>$price) {
  10.             echo "<tr><td>". $name. "</td>";
  11.             $pr_val = array_keys($massiv);
  12.             echo "<td>".$pr_val[0]. "</td>";
  13.             echo "<td>".$price."</td></tr>\r\n"; // product price
  14.         }  
  15.     }
  16. }

Это то, как бы это сделал я.. думаю поможет
PHP:
скопировать код в буфер обмена
  1.  
  2. $array = array();
  3. $array[0] = array("Name1"=> array("2"=>"1460","3"=>"1868","4"=>"2158","5"=>"2537","6"=>"2915","8"=>"3673"));
  4. $array[1] = array("Prod2"=> array("3"=>"3079","4"=>"3625","5"=>"4172","6"=>"4718","8"=>"5811"));
  5. echo '<table rules="all" border="1">';
  6. foreach($array as $v) {
  7.     foreach($v as $name => $ar) {
  8.         foreach($ar as $v1 => $v2) {
  9.             echo sprintf('<tr><td>%s</td><td>%s</td><td>%s</td></tr>'."\r\n",
  10.                 $name, $v1, $v2);
  11.         }
  12.     }
  13. }
  14. echo '</table>';

(Отредактировано автором: 30 Января, 2016 - 02:24:55)

 
My status
 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