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. anton1990 - 10 Августа, 2013 - 20:37:20 - перейти к сообщению
Здравствуйте!
Вот массив
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.  

Подскажите, как вывести значения в нормальном виде.
2. anton1990 - 10 Августа, 2013 - 23:00:58 - перейти к сообщению
Видимо, только так. Вариант $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
3. VestCoastman - 11 Августа, 2013 - 01:58:16 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1. for ($i = 0; $i<count($abc); $i+=4) {
  2.         echo $abc[$i+2].' - '.$abc[$i];
  3. }

Не проверял
4. avtor.fox - 11 Августа, 2013 - 02:46:15 - перейти к сообщению
ой жесть Голливудская улыбка

. (Отобразить)
5. anton1990 - 11 Августа, 2013 - 10:20:46 - перейти к сообщению
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
6. avtor.fox - 11 Августа, 2013 - 13:47:03 - перейти к сообщению
anton1990 пишет:
Вот вывод вложенного массива с помощью вложенного цикла

Да, простите. У Вас всё элегантно.
7. unnomen - 15 Марта, 2015 - 13:22:07 - перейти к сообщению
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. }
8. 2dmaster - 30 Января, 2016 - 01:33:10 - перейти к сообщению
Помогите пожалуйста! у меня в коде чуть более сложный массив,
работает неправильно (((

stackoverflow тчк. com/questions/35095372/how-to-ge t-different-count-of-key-php-arr ay-to-table-and Тут выложил код... готов помочь материально срочно
9. Prizma - 30 Января, 2016 - 02:07:24 - перейти к сообщению
Это то что вы там написали...
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>';

 

Powered by ExBB FM 1.0 RC1