Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Вывод данных из 3-х массивов в таблицу
 
 автор: BiFF   (16.04.2007 в 22:25)   письмо автору
 
 

Есть 3-и массива $_POST['raz']; $_POST['dva']; $_POST['tri']. Нужно помочь вывести их в таблице в следующем виде:
________________________________________________________________
| 1 | 2 | 3 |
________________________________________________________________
|значения из массива raz | значения из массива dva | значения из массива tri |

Использовал foreach, но получается вывести всё только в 1 столбец, а так чтобы массив 1 был в одном столбце, массив 2 в другом, а массив 3 в 3 нет. Подскажите.

   
 
 автор: Valick   (16.04.2007 в 22:32)   письмо автору
 
   для: BiFF   (16.04.2007 в 22:25)
 

Вариантов много, например используйте цикл for, вместо foreach

   
 
 автор: Drago   (16.04.2007 в 22:33)   письмо автору
 
   для: BiFF   (16.04.2007 в 22:25)
 

Вы вероятно используете таблицу с тремя столбцами? Тогда, можно сделать так:

<?
echo "<table><tr><td>";

foreach (
$_POST['raz'] as $value1)
  echo 
"$value1<br>";//вывод первого массива

echo "</td><td>";

foreach (
$_POST['dva'] as $value2)
  echo 
"$value2<br>";//вывод второго массива

echo "</td><td>";

foreach (
$_POST['tri'] as $value3)
  echo 
"$value3<br>";//вывод третьего массива

echo "</td></tr></table>";
?>

   
 
 автор: BiFF   (19.04.2007 в 21:13)   письмо автору
 
   для: Drago   (16.04.2007 в 22:33)
 

Вы не много не поняли, я знаю как вывести данные из массива, но не могу вывести их в том ввиде в каком надо.

Drago как Вы написалали у меня тоже получилось, все значения из 1 массива выводятся в столбец в 1 ячейки, но надо чтоб получалось так чтобы каждое значение 1 массива было в своей ячейки, вот так:

<table>
    <tr>
    <td>Шапка Значения массива 1</td>
                <td >Шапка Значения массива 2</td>
                <td>Шапка  Значения массива 3</td>
                <td>Шапка Значения массива 4</td>
              </tr>
    <tr>
    <td >Значение 1 массива 1</td>
                <td>Значение 1 массива 2</td>
                <td>Значение 1 массива 3</td>
                <td>Значение 1 массива 4</td>
              </tr>
              <tr>
    <td >Значение 2 массива 1</td>
                <td>Значение 2 массива 2</td>
                <td>Значение 2 массива 3</td>
                <td>Значение 2 массива 4</td>
              </tr></table>

   
 
 автор: Drago   (20.04.2007 в 00:35)   письмо автору
 
   для: BiFF   (19.04.2007 в 21:13)
 

Тогда, можно поступить следующим образом:

<?
$_POST
['raz']=array(1,2,3,4,5);
$_POST['dva']=array(1,2,3,4,5,6,7);
$_POST['tri']=array(1,2,3,4,5,6,7,8,9);
$_POST['4etyre']=array(1,2,3,4,5,6,7);

echo 
"<table border=1>
    <tr>
      <td>Шапка Значения массива 1</td>
      <td >Шапка Значения массива 2</td>
      <td>Шапка  Значения массива 3</td>
      <td>Шапка Значения массива 4</td>
    </tr>"
;

$maxcount count($_POST['raz']);
if (
count($_POST['dva']) > $maxcount$maxcount count($_POST['dva']);
if (
count($_POST['tri']) > $maxcount$maxcount count($_POST['tri']);
if (
count($_POST['4etyre']) > $maxcount$maxcount count($_POST['4etyre']);

for (
$i=0$i<$maxcount$i++)
    {
    echo 
"<tr>
        <td>"
.($_POST['raz'][$i] ? $_POST['raz'][$i] : "&nbsp;")."</td>
        <td>"
.($_POST['dva'][$i] ? $_POST['dva'][$i] : "&nbsp;")."</td>
        <td>"
.($_POST['tri'][$i] ? $_POST['tri'][$i] : "&nbsp;")."</td>
        <td>"
.($_POST['4etyre'][$i] ? $_POST['4etyre'][$i] : "&nbsp;")."</td>
          </tr>"
;
    }

echo 
"</table>";
?>

   
 
 автор: acdcee   (20.04.2007 в 00:55)   письмо автору
 
   для: BiFF   (19.04.2007 в 21:13)
 


/*Где $post = $_POST['значение'] и дальше value в массиве будет выглядеть value1,value2,value 3*/
<?php
$post_item 
= array(
array(
"value"=>"<td>".$post."</td>"),
array(
"value"=>"<td>".$post1."</td>"),
array(
"value"=>"<td>".$post2."</td>"),
array(
"value"=>"<td>".$post3."</td>"));

echo
"<table border=0 width=100% cellpadding=0 cellspacing=0><tr>";
foreach(
$post_item as $v){
echo  
$v['value'];
}
echo 
"</tr></table>";
?>


Нарисует все ячейки в первой строке и так массив увеличив до 4 можно все таблицу сделать вроде я правельно понял ВАС!

   
 
 автор: Valick   (16.04.2007 в 23:06)   письмо автору
 
   для: BiFF   (16.04.2007 в 22:25)
 

А вот вам, если вы по какой-то причине не захотите использовать таблицы

<?php
$raz
=array(0,1,2,3,4);
$dva=array(0,1,2,3,4,5,6);
$tri=array(0,1,2,3,4,5);
// Вычисляем максимальный массив
$max=count($raz);
if (
$max<count($dva)) $max=count($dva);
if (
$max<count($tri)) $max=count($tri);
// Выводим массивы
for ($i=0$i<$max$i++)
  {
  if (
$i<count($raz)) print $raz[$i]."|"; else print "*|";
  if (
$i<count($dva)) print $dva[$i]."|"; else print "*|";
  if (
$i<count($tri)) print $tri[$i]."|"; else print "*|";
    echo 
"<br>";
  }
?>

И вместо print используйте printf

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования