Модераторы: skyboy, MoLeX, Aliance, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Вывод массива в таблицу 
V
    Опции темы
s1lver
Дата 19.3.2009, 17:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 580
Регистрация: 14.12.2007
Где: Россия

Репутация: нет
Всего: нет



Доброго времени суток!


Проблема такая. Есть 2 файла table.php и mas.php. В первом файле есть таблица, во втором заполнение этой таблицы из массива.

В mas.php многомерный массив вида:

Код

$mas=array(
"Наименование"=>array("Sony","Toshiba","Akai"),
"Поставщик"=>array("Texno","Absolut","WorldTech"),
"Цена"=>array("10000","12000","14000"),
"Кол-во"=>array("10","25","34")
);


Вид файла  table.php
Код

<table width="563" height="243" border="1">
  <tr>
    <td width="150">Наименование</td>
    <td width="186">Поставщик</td>
    <td width="205">Цена</td>
    <td width="205">Кол-во</td>
  </tr>
  <tr>
    <td>%TAG1%</td>
    <td>%TAG2%</td>
    <td>%TAG3%</td>
    <td>%TAG4%</td>
  </tr>
  <tr>
    <td>%TAG1%</td>
    <td>%TAG2%</td>
    <td>%TAG3%</td>
    <td>%TAG4%</td>
  </tr>
  <tr>
    <td>%TAG1%</td>
    <td>%TAG2%</td>
    <td>%TAG3%</td>
    <td>%TAG4%</td>
  </tr>
</table>


Так вот надо в таблице заменить теги на  значения массива smile 

PS. Сбивчиво объяснил, у самого уже мозги едут.  smile 

Это сообщение отредактировал(а) s1lver - 19.3.2009, 17:44


--------------------
Я собрался жить вечно - пока все идет нормально!
PM MAIL ICQ   Вверх
pizzz
Дата 19.3.2009, 17:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 238
Регистрация: 14.12.2008
Где: Омск

Репутация: 6
Всего: 8



Какую именно таблицу надо построить????

Такую:


++++++++++++++++++++++++++++++++++
+Наименование + Поставщик +Цена+Кол-во+
++++++++++++++++++++++++++++++++++
+Sony               + Texno         +10000+   10
+Toshiba           +  Absolut      +12000+   25
+Akai                +  WorldTech  +14000+   34
--------------------
Спасибо много, жмем кнопку репутация.  Извините меня за орфографические ошибки, я стараюсь не ошибаться, а они все равно просачиваются гады.     
PM MAIL ICQ   Вверх
s1lver
Дата 19.3.2009, 17:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 580
Регистрация: 14.12.2007
Где: Россия

Репутация: нет
Всего: нет



Совершенно верно. smile 

Вот тут начал прикидывать код.

Код

<?
if(!file_exists("table.php"))
die("Файл с таблицой не найден. Показать стандартный вывод массива.</br> <a href=\"./mas2.php\">Показать</a>");


$mas=array(
"Наименование"=>array("Sony","Toshiba","Akai"),
"Поставщик"=>array("Texno","Absolut","WorldTech"),
"Цена"=>array("10000","12000","14000"),
"Кол-во"=>array("10","25","34")
);

include("table.php");
$output=str_replace("%TAG1%",$mas,);
?>



--------------------
Я собрался жить вечно - пока все идет нормально!
PM MAIL ICQ   Вверх
pizzz
Дата 19.3.2009, 17:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 238
Регистрация: 14.12.2008
Где: Омск

Репутация: 6
Всего: 8



Код

<?php
$vyvod = '';

$mas = array(
                     "Наименование" => array ("Sony", "Toshiba", "Akai"),
                     "Поставщик"       => array ("Texno", "Absolut", "WorldTech"),
                     "Цена"                 => array ("10000", "12000", "14000"),
                     "Кол-во"               => array ("10", "25", "34")
                    );


?>

$vyvod .= "<table>";
$vyvod .= "<tr>";
$vyvod .= "<td>Наименование</td>";
$vyvod .= "<td>Поставщик</td>";
$vyvod .= "<td>Цена</td>";
$vyvod .= "<td>Кол-во</td>";
$vyvod .= "</tr>";

foreach ($mas AS $v) {
    $vyvod .= "<tr>";
    $vyvod .= "<td>" . $v[0] . "</td>";
    $vyvod .= "<td>" . $v[1] . "</td>";
    $vyvod .= "<td>" . $v[2] . "</td>";
    $vyvod .= "<td>" . $v[3] . "</td>";
    $vyvod .= "</tr>";
}

$vyvod .= "</table>";

echo $vyvod;


Добавлено через 4 минуты и 17 секунд
Код

<?
@file_exists("table.php") die("Файл с таблицой не найден. Показать стандартный вывод массива.</br> <a href=\"./mas2.php\">Показать</a>");


ВО первых так. 



Код

$output=str_replace("%TAG1%",$mas,);


так мне кажеться работать не будет...

Добавлено через 5 минут и 26 секунд
ща покажу рабочий вариант, но не уверен что он будет красивый  smile 
--------------------
Спасибо много, жмем кнопку репутация.  Извините меня за орфографические ошибки, я стараюсь не ошибаться, а они все равно просачиваются гады.     
PM MAIL ICQ   Вверх
s1lver
Дата 19.3.2009, 18:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 580
Регистрация: 14.12.2007
Где: Россия

Репутация: нет
Всего: нет



э..первый вроде не правильно выводит таблицу. Этот вариант у меня предусмотрен в проверке файла с таблицой smile 


Цитата


Выделить всёкод PHP
1:
    
$output=str_replace("%TAG1%",$mas,);


так мне кажеться работать не будет...


так и есть smile 

Цитата


ща покажу рабочий вариант, но не уверен что он будет красивый  smile  

хорошо бы


--------------------
Я собрался жить вечно - пока все идет нормально!
PM MAIL ICQ   Вверх
pizzz
Дата 19.3.2009, 18:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 238
Регистрация: 14.12.2008
Где: Омск

Репутация: 6
Всего: 8



Покажите фаил table.php
--------------------
Спасибо много, жмем кнопку репутация.  Извините меня за орфографические ошибки, я стараюсь не ошибаться, а они все равно просачиваются гады.     
PM MAIL ICQ   Вверх
s1lver
Дата 19.3.2009, 18:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 580
Регистрация: 14.12.2007
Где: Россия

Репутация: нет
Всего: нет



Код

<table width="563" height="243" border="1">
  <tr>
    <td width="150">Наименование</td>
    <td width="186">Поставщик</td>
    <td width="205">Цена</td>
    <td width="205">Кол-во</td>
  </tr>
  <tr>
    <td>%TAG1%</td>
    <td>%TAG2%</td>
    <td>%TAG3%</td>
    <td>%TAG4%</td>
  </tr>
  <tr>
    <td>%TAG1%</td>
    <td>%TAG2%</td>
    <td>%TAG3%</td>
    <td>%TAG4%</td>
  </tr>
  <tr>
    <td>%TAG1%</td>
    <td>%TAG2%</td>
    <td>%TAG3%</td>
    <td>%TAG4%</td>
  </tr>
</table>



--------------------
Я собрался жить вечно - пока все идет нормально!
PM MAIL ICQ   Вверх
pizzz
Дата 19.3.2009, 18:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 238
Регистрация: 14.12.2008
Где: Омск

Репутация: 6
Всего: 8



Цитата

э..первый вроде не правильно выводит таблицу. 


ага. Попробывал, точно smile

Добавлено через 2 минуты и 2 секунды
Жесть smile Ладно. дайте минут 10. Напишу как я бы это сделал
--------------------
Спасибо много, жмем кнопку репутация.  Извините меня за орфографические ошибки, я стараюсь не ошибаться, а они все равно просачиваются гады.     
PM MAIL ICQ   Вверх
pizzz
Дата 19.3.2009, 18:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 238
Регистрация: 14.12.2008
Где: Омск

Репутация: 6
Всего: 8



Вот так выводит smile

Код

<?php

$mas=array(
           "name"     => array("Sony", "Toshiba", "Akai"),
           "supplier" => array("Texno", "Absolut", "WorldTech"),
           "price"    => array("10000", "12000", "14000"),
           "count"    => array("10", "25", "34")
          );
$vyvod = '';

$vyvod .= '<table width="563" height="243" border="1">';
$vyvod .= '<tr>';
$vyvod .= '<td width="150">Наименование</td>';
$vyvod .= '<td width="186">Поставщик</td>';
$vyvod .= '<td width="205">Цена</td>';
$vyvod .= '<td width="205">Кол-во</td>';
$vyvod .= '</tr>';

for ($i = 0; $i < count ($mas['name']); $i++) {
   $vyvod .= '<tr>';
   $vyvod .= '<td>' . $mas['name'][$i] . '</td>';
   $vyvod .= '<td>' . $mas['supplier'][$i] . '</td>';
   $vyvod .= '<td>' . $mas['price'][$i] . '</td>';
   $vyvod .= '<td>' . $mas['count'][$i] . '</td>';
   $vyvod .= '</tr>';
}
$vyvod .= '</table>';

echo $vyvod;
?>

--------------------
Спасибо много, жмем кнопку репутация.  Извините меня за орфографические ошибки, я стараюсь не ошибаться, а они все равно просачиваются гады.     
PM MAIL ICQ   Вверх
s1lver
Дата 19.3.2009, 18:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 580
Регистрация: 14.12.2007
Где: Россия

Репутация: нет
Всего: нет



Цитата

Вот так выводит


Спасибо большое. 
А что на счет тегов, так никак не получится сделать? 


--------------------
Я собрался жить вечно - пока все идет нормально!
PM MAIL ICQ   Вверх
pizzz
Дата 19.3.2009, 18:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 238
Регистрация: 14.12.2008
Где: Омск

Репутация: 6
Всего: 8



Получиться. Возьми любой шаблонизатор smile
--------------------
Спасибо много, жмем кнопку репутация.  Извините меня за орфографические ошибки, я стараюсь не ошибаться, а они все равно просачиваются гады.     
PM MAIL ICQ   Вверх
enof
Дата 19.3.2009, 19:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 837
Регистрация: 23.1.2009
Где: Санкт-Петербург

Репутация: 30
Всего: 35



Код

$cnt = 0;
$keys = array_keys($mas);
print_r($keys);
function for_replace($matches)
{
    global $cnt,$mas,$keys;
    print_r($matches);
    $key = $matches[1] - 1;
    return $mas[$keys[$key]][$matches[1] == count($mas) ? $cnt++ : $cnt];
}
echo preg_replace_callback("#%TAG(\d+)%#", 'for_replace', $table);

$table - таблица с %TAGn%
$mas - массив с данными.
PM MAIL ICQ Skype   Вверх
s1lver
Дата 19.3.2009, 20:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 580
Регистрация: 14.12.2007
Где: Россия

Репутация: нет
Всего: нет



Warning: include(tablephp) [function.include]: failed to open stream: No such file or directory in H:\home\localhost\www\mas.php on line 13

Warning: include() [function.include]: Failed opening 'tablephp' for inclusion (include_path='.;/usr/local/php5/PEAR') in H:\home\localhost\www\mas.php on line 13


оо, накосячил smile  как

Это сообщение отредактировал(а) s1lver - 19.3.2009, 20:09


--------------------
Я собрался жить вечно - пока все идет нормально!
PM MAIL ICQ   Вверх
enof
Дата 19.3.2009, 20:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 837
Регистрация: 23.1.2009
Где: Санкт-Петербург

Репутация: 30
Всего: 35



ээ. а как это связано со скриптом выше?
PM MAIL ICQ Skype   Вверх
s1lver
Дата 19.3.2009, 20:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 580
Регистрация: 14.12.2007
Где: Россия

Репутация: нет
Всего: нет



Цитата

ээ. а как это связано со скриптом выше?



упс. нет, это было в вызове файла с таблицой smile 


Вон оно чего выводит мне
user posted image

Как прописать что $table это table.php ?

Это сообщение отредактировал(а) s1lver - 19.3.2009, 21:09


--------------------
Я собрался жить вечно - пока все идет нормально!
PM MAIL ICQ   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0572 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.