Как вывести данные из массива в таблицу?

serega200606

Новичок
Имеется массив, который при выводе print_r($result); дает результат, приведенный ниже.
Как вывести все эти данные из массива в виде html таблицы если заранее не известно количество записей? В интернете похожих примеров не нашел - не могу сам разобраться. Подскажите, пожалуйста

Array
(
[result] => 1
[message] => Array
(
[0] => Array
(
[providerId] => 1
[actionDate] => 1322514017
[state] => 1
[firstName] => Имя
[lastName] => Фамилия
[middleName] => Отчество
[phone] => 380000000000
=> [email protected]
[commission] => 3
[amount] => 3
[paymentId] => 454
[shopName] =>
[uid] =>
[description] => description
[inviteCode] =>
)

[1] => Array
(
[providerId] => 58
[actionDate] => 1322863854
[state] => 1
[firstName] => Имя
[lastName] => Фамилия
[middleName] => Отчество
[phone] => 380000000000
[email] => [email protected]
[commission] => 5
[amount] => 99
[paymentId] => 674
[shopName] =>
[uid] =>
[description] => description
[inviteCode] => 000
)

[2] => Array
(
[providerId] => 58
[actionDate] => 1323088060
[state] => 1
[firstName] => Имя
[lastName] => Фамилия
[middleName] => Отчество
[phone] => 380000000000
[email] => [email protected]
[commission] => 5
[amount] => 99
[paymentId] => 776
[shopName] =>
[uid] =>
[description] => description
[inviteCode] => 111
)

)

)
 

Всем спасибо :)

echo '<table cellpadding="5" cellspacing="0" border="1">';
foreach ($result['message'] as $key => $value) {
echo "<tr><td>".$value['providerId']."</td><td>".$value['actionDate']."</td><td>".$value['state']."</td><td>".$value['firstName']."</td><td>".$value['lastName']."</td><td>".$value['middleName']."</td><td>".$value['phone']."</td>
<td>".$value['email']."</td><td>".$value['commission']."</td><td>".$value['amount']."</td><td>".$value['paymentId']."</td><td>".$value['shopName']."</td>
<td>".$value['uid']."</td><td>".$value['description']."</td><td>".$value['inviteCode']."</td></tr>";

}
echo "</table>";
 
Всем спасибо :)

echo '<table cellpadding="5" cellspacing="0" border="1">';
foreach ($result['message'] as $key => $value) {
echo "<tr><td>".$value['providerId']."</td><td>".$value['actionDate']."</td><td>".$value['state']."</td><td>".$value['firstName']."</td><td>".$value['lastName']."</td><td>".$value['middleName']."</td><td>".$value['phone']."</td>
<td>".$value['email']."</td><td>".$value['commission']."</td><td>".$value['amount']."</td><td>".$value['paymentId']."</td><td>".$value['shopName']."</td>
<td>".$value['uid']."</td><td>".$value['description']."</td><td>".$value['inviteCode']."</td></tr>";

}
echo "</table>";

Внутри можно добавить еще один foreach и не нужно будет руками выводить столько инфы
 
PHP:
echo '<table cellpadding="5" cellspacing="0" border="1">';
foreach ($result['message'] as $key => $value) {
	echo "<tr>";
	foreach ($value as $data)
		echo "<td>".$data."</td>";
	echo "</tr>";
}
echo "</table>";
 
PHP:
echo '<table cellpadding="5" cellspacing="0" border="1">';
foreach ($result['message'] as $key => $value) {
	echo "<tr>";
	foreach ($value as $data)
		echo "<td>".$data."</td>";
	echo "</tr>";
}
echo "</table>";

Мне просто нужно еще и обрабатывать некоторые поля определенным образом, а не только вывести все в таблицу, поэтому лучше руками. Но все равно спасибо за совет - пригодится :)
 
serega200606
не слушай плохих советов.

SkyLine
Не давай плохих советов. Бороться за сокращение кода в ущерб его читабельности и логичности - путь к говнокоду.
 
SkyLine
Не давай плохих советов. Бороться за сокращение кода в ущерб его читабельности и логичности - путь к говнокоду.

Если данные выбраны, обработаны и подготовлены к выводу в таблицу, то гораздо логичнее вывести их в цикле, чем писать пару десятков кусков типа "<td>$data</td>"...
 
SkyLine
Если бы они были подготовлены к выводу, то индексы были бы не строковые, а числовые 0, 1.
Несмотря на то, что в PHP массивах все-таки есть порядок и для строковых ключей, все равно крайне некрасиво выводить данные по строковым ключам через обычный foreach. Это выглядит нелогично и, имхо, запутает читающего код.
 
SkyLine
Если бы они были подготовлены к выводу, то индексы были бы не строковые, а числовые 0, 1.
Несмотря на то, что в PHP массивах все-таки есть порядок и для строковых ключей, все равно крайне некрасиво выводить данные по строковым ключам через обычный foreach. Это выглядит нелогично и, имхо, запутает читающего код.

Обычный foreach в общем-то и предназначен для перебора элементов ассоциативного массива. Другого способа получить элементы, кроме как обращаться на прямую по индексу, в таком массиве нет. И если есть такой массив, с парой десятков элементов, то лучше перебрать их в цикле и вывести, чем вручную писать вывод каждого элемента.
А если такой массив формируется "на лету" и заведомо неизвестно сколько столбцов будет и какие? Или данные берутся из разных запросов, то для каждого писать свой набор элементов для вывода в таблицу?

Только если с данными нужно делать какие-то особые преобразования или если каждому элементу массива не выделена отдельная ячейка, писать руками вывод - лишняя трата времени.

P.S. Я не говорю, что так нужно делать всегда. Нет. Но и вообще отказываться от такого варианта считаю не логичным.
 
Сверху