|
Posted by Jerry Stuckle on 09/07/07 19:01
Jerry Stuckle wrote:
> J. Frank Parnell wrote:
>> On Fri, 07 Sep 2007 07:22:46 -0400, Jerry Stuckle
>> <jstucklex@attglobal.net>
>> wrote:
>>
>>> J. Frank Parnell wrote:
>>>> On Thu, 06 Sep 2007 21:41:27 -0400, Jerry Stuckle
>>>> <jstucklex@attglobal.net>
>>>> wrote:
>>>>
>>>>> J. Frank Parnell wrote:
>>>>>> Hello,
>>>>>> So, I was wondering how to do this:
>>>>>>
>>>>>> foreach($foo as $k=>$v AND $bar as $k2=>$v2){
>>>>>> echo '<TR><TD>$k</TD><TD>$v</TD><TD>$k2</TD><TD>$v2</TD></TR>;
>>>>>> }
>>>>>>
>>>>>> Thanks,
>>>>> No.
>>>>>
>>>>> However, you can use "each" to do the same thing, i.e.
>>>>>
>>>>> reset $array1;
>>>>> reset $array2;
>>>>>
>>>>> for ((list($key1, $val1) = each($array1)) &&
>>>>> (list($key2, $val2) = each($array2)) {
>>>>> // $key1 and val1 contain the key and value for an element in $array1
>>>>> // $key2 and val2 contain the key and value for an element in $array2
>>>>> // Do your stuff here
>>>>> }
>>>>>
>>>>> It will stop as soon as you run out of elements in either array.
>>>> Ah, cool, I saw similar on the php.net. Is there a way to do it so
>>>> that it will
>>>> go thru all of both, even if one runs out?
>>> What do you want to do with the array which runs out? And what do
>>> you want to do with the array with items left?
>>
>> I figured the var that ran out would just be empty while the other
>> var is still
>> listing, eaching, etc. It might be handy to be able to specify a
>> default value
>> instead of empty, like   for the table exapmle above. Looks like
>> I could
>> just stick a little if() in Satya's code.
>>
>>
>
> OK, then try this:
>
> reset $array1;
> reset $array2;
>
> for (($val1 = each($array1)) || ($val2 = each($array2)) {
> if ($val1) { // false if at the end
> // $val1['key'] contains the key
> // $val1['value'] contains the value
> echo $val1['key'] . '=>' $val1['value'];
> }
> else
> echo ' ';
> if ($val2) { // false if at the end
> // $val2['key'] contains the key
> // $val2['value'] contains the value
> echo $val2['key'] . '=>' $val2['value'];
> }
> else
> echo ' ';
> }
>
>
Sorry - that should be:
for (($val1 = each($array1)) || ($val2 = each($array2))) {
Missed an extra paren at the end.
--
==================
Remove the "x" from my email address
Jerry Stuckle
JDS Computer Training Corp.
jstucklex@attglobal.net
==================
[Back to original message]
|