Re: php+html mixup in displaying multidimensional array in html tables [message #176866 is a reply to message #176865] |
Sun, 29 January 2012 20:09 |
Jerry Stuckle
Messages: 2598 Registered: September 2010
Karma:
|
Senior Member |
|
|
On 1/29/2012 2:58 PM, Denis McMahon wrote:
> On Sat, 28 Jan 2012 15:14:51 -0500, Jerry Stuckle wrote:
>
>> On 1/28/2012 2:28 PM, Denis McMahon wrote:
>>> On Sat, 28 Jan 2012 12:24:14 +0100, John wrote:
>>>
>>>> I am new to this problem and shall be very grateful for any hint on
>>>> how to a´void an unreadable code-salad, when trying to display a
>>>> bidimensional array (thus with two indexes) on a html table. I refer
>>>> to the continuous shifting between<?php and<html> every two lines.
>>>>
>>>> Is there a method which is 'quick an easy' to do the job ?
>>>
>>> You mean something like:
>>>
>>> echo "<table>\n";
>>> foreach ($arr as $line) {
>>> echo "<tr>\n";
>>> foreach ($line as $cell) {
>>> echo "<td>$cell</td>\n";
>>> }
>>> echo "</tr>\n";
>>> }
>>> echo "</table>\n";
>>>
>>> This is a very crude solution, makes several assumptions, and has no
>>> testing of or handling for unexpected conditions. Depending on the data
>>> you feed it, it may crash or generate invalid markup, but under some
>>> conditions it might instead generate a valid table.
>>>
>>> The wonders of usenet will probably screw the formatting too. I can't
>>> do much about that.
>
>> What is crude about it? What assumptions (other than the data does not
>> need to be run though htmlentities() or htmlspecialchars(), which is
>> quite easy to do)?
>
> 1) If the sub arrays don't all contain the same number of elements, you
> could get a table with different numbers of cells in different rows.
> Ideally you ought to catch that somehow. One of the principles I was
> taught was about being liberal in what you accept as input and specific
> in what you generate as output.
>
This is from a MySQL query - multiple rows, all with the same number of
columns.
> 2) What if an array member is a binary object or a class?
>
See above.
> Ultimately my solution is probably only suited to 2d arrays containing
> the same number of elements in each sub-array, and where each element in
> a sub-array is either an html safe string or a numeric value.
>
See above.
>> And what would crash?
>
> I have no idea what it will do if you feed it a binary object or a class
> as a sub-array element, but I suspect it may crash. Whatever it does do,
> from the point of view that the desired behaviour is that of "generating
> meaningful html", I doubt it would work as desired if eg
>
See above.
> $arr[3][2] = imagecreatetruecolor(640,480);
> $arr[1][3] = fopen("/path/file.type","r");
>
> etc etc
>
> Rgds
>
> Denis McMahon
Read the entire post. None of your arguments are valid.
--
==================
Remove the "x" from my email address
Jerry Stuckle
JDS Computer Training Corp.
jstucklex(at)attglobal(dot)net
==================
|
|
|