FUDforum
Fast Uncompromising Discussions. FUDforum will get your users talking.

Home » Imported messages » comp.lang.php » foreach problem part two
Show: Today's Messages :: Unread Messages :: Show Polls :: Message Navigator
| Subscribe to topic | Bookmark topic 
Switch to threaded view of this topic Create a new topic Submit Reply
foreach problem part two [message #184268] Thu, 19 December 2013 13:41 Go to next message
Mr Oldies is currently offline  Mr Oldies
Messages: 241
Registered: October 2013
Karma: 0
Senior Member
add to buddy list
ignore all messages by this user
<?php
foreach ($aname as $item){
echo $aname[$item][1];
echo " (".$aname[$item][2].")";
}
?>

I decided to create a second array that holds only the artist and number of
records.
So why am I getting "invalid argument" with this?
Re: foreach problem part two [message #184270 is a reply to message #184268] Thu, 19 December 2013 14:00 Go to previous messageGo to next message
Christoph Michael Bec is currently offline  Christoph Michael Bec
Messages: 207
Registered: June 2013
Karma: 0
Senior Member
add to buddy list
ignore all messages by this user
Am 19.12.2013 19:41, schrieb richard:
> <?php
> foreach ($aname as $item){
> echo $aname[$item][1];
> echo " (".$aname[$item][2].")";
> }
> ?>
>
> I decided to create a second array that holds only the artist and number of
> records.
> So why am I getting "invalid argument" with this?

You may consider reading the manual:
<http://www.php.net/manual/en/control-structures.foreach.php>.

--
Christoph M. Becker
Re: foreach problem part two [message #184272 is a reply to message #184270] Thu, 19 December 2013 14:16 Go to previous messageGo to next message
Denis McMahon is currently offline  Denis McMahon
Messages: 634
Registered: September 2010
Karma: 0
Senior Member
add to buddy list
ignore all messages by this user
On Thu, 19 Dec 2013 20:00:41 +0100, Christoph Michael Becker wrote:

> You may consider reading the manual:
> <http://www.php.net/manual/en/control-structures.foreach.php>.

I suspect the reason richard doesn't read the manual is because it's full
of big scary words like parameter, integer and boolean that he doesn't
understand.

--
Denis McMahon, denismfmcmahon(at)gmail(dot)com
Re: foreach problem part two [message #184275 is a reply to message #184270] Thu, 19 December 2013 14:20 Go to previous messageGo to next message
The Natural Philosoph is currently offline  The Natural Philosoph
Messages: 993
Registered: September 2010
Karma: 0
Senior Member
add to buddy list
ignore all messages by this user
On 19/12/13 19:00, Christoph Michael Becker wrote:
> Am 19.12.2013 19:41, schrieb richard:
>> <?php
>> foreach ($aname as $item){
>> echo $aname[$item][1];
>> echo " (".$aname[$item][2].")";
>> }
>> ?>
>>
>> I decided to create a second array that holds only the artist and number of
>> records.
>> So why am I getting "invalid argument" with this?
>
> You may consider reading the manual:
> <http://www.php.net/manual/en/control-structures.foreach.php>.
>
IF I had £5 for every time someone has suggested richard reads the
manaul THEN I'd be able to afford a new computer.


--
Ineptocracy

(in-ep-toc’-ra-cy) – a system of government where the least capable to
lead are elected by the least capable of producing, and where the
members of society least likely to sustain themselves or succeed, are
rewarded with goods and services paid for by the confiscated wealth of a
diminishing number of producers.
Re: foreach problem part two [message #184276 is a reply to message #184272] Thu, 19 December 2013 14:21 Go to previous messageGo to next message
The Natural Philosoph is currently offline  The Natural Philosoph
Messages: 993
Registered: September 2010
Karma: 0
Senior Member
add to buddy list
ignore all messages by this user
On 19/12/13 19:16, Denis McMahon wrote:
> On Thu, 19 Dec 2013 20:00:41 +0100, Christoph Michael Becker wrote:
>
>> You may consider reading the manual:
>> <http://www.php.net/manual/en/control-structures.foreach.php>.
>
> I suspect the reason richard doesn't read the manual is because it's full
> of big scary words like parameter, integer and boolean that he doesn't
> understand.
>
I am not convinced he can read at all.


--
Ineptocracy

(in-ep-toc’-ra-cy) – a system of government where the least capable to
lead are elected by the least capable of producing, and where the
members of society least likely to sustain themselves or succeed, are
rewarded with goods and services paid for by the confiscated wealth of a
diminishing number of producers.
fixed! (was: foreach problem part two) [message #184277 is a reply to message #184268] Thu, 19 December 2013 16:07 Go to previous messageGo to next message
Mr Oldies is currently offline  Mr Oldies
Messages: 241
Registered: October 2013
Karma: 0
Senior Member
add to buddy list
ignore all messages by this user
On Thu, 19 Dec 2013 13:41:51 -0500, richard wrote:

> <?php
> foreach ($aname as $item){
> echo $aname[$item][1];
> echo " (".$aname[$item][2].")";
> }
> ?>
>
> I decided to create a second array that holds only the artist and number of
> records.
> So why am I getting "invalid argument" with this?

<?php
$result=count($art60);

$acount=0;
while ($acount<=$result){
echo "<div class='blu'>";
$number=count($art60[$acount]);
echo $art60[$acount][0];
echo " (".$number.")";
echo "</div>";
$acount++;
}

?>

This version not only shows the names, but the number of songs each
produced as well.


http://mroldies.net/artists/60artists.php
Re: foreach problem part two [message #184278 is a reply to message #184268] Thu, 19 December 2013 17:34 Go to previous messageGo to next message
Doug Miller is currently offline  Doug Miller
Messages: 171
Registered: August 2011
Karma: 0
Senior Member
add to buddy list
ignore all messages by this user
richard <noreply(at)example(dot)com> wrote in news:oib4w8z2sr5y$.15xxzxjds0xb0$.dlg@
40tude.net:

> <?php
> foreach ($aname as $item){
> echo $aname[$item][1];
> echo " (".$aname[$item][2].")";
> }
> ?>
>
> I decided to create a second array that holds only the artist and number of
> records.
> So why am I getting "invalid argument" with this?

Because you don't understand how foreach() works. RTFM.
Re: foreach problem part two [message #184279 is a reply to message #184278] Thu, 19 December 2013 18:39 Go to previous messageGo to next message
Mr Oldies is currently offline  Mr Oldies
Messages: 241
Registered: October 2013
Karma: 0
Senior Member
add to buddy list
ignore all messages by this user
On Thu, 19 Dec 2013 22:34:24 +0000 (UTC), Doug Miller wrote:

> richard <noreply(at)example(dot)com> wrote in news:oib4w8z2sr5y$.15xxzxjds0xb0$.dlg@
> 40tude.net:
>
>> <?php
>> foreach ($aname as $item){
>> echo $aname[$item][1];
>> echo " (".$aname[$item][2].")";
>> }
>> ?>
>>
>> I decided to create a second array that holds only the artist and number of
>> records.
>> So why am I getting "invalid argument" with this?
>
> Because you don't understand how foreach() works. RTFM.

I did.
There is a flaw in the works that is not discussed.
That being, it won't work with brackted arrays.
Works fine with standard arrays.

While (){}. however works and could care less which is used.
Re: foreach problem part two [message #184280 is a reply to message #184279] Thu, 19 December 2013 19:51 Go to previous messageGo to next message
Jerry Stuckle is currently offline  Jerry Stuckle
Messages: 2598
Registered: September 2010
Karma: 0
Senior Member
add to buddy list
ignore all messages by this user
On 12/19/2013 6:39 PM, richard wrote:
> On Thu, 19 Dec 2013 22:34:24 +0000 (UTC), Doug Miller wrote:
>
>> richard <noreply(at)example(dot)com> wrote in news:oib4w8z2sr5y$.15xxzxjds0xb0$.dlg@
>> 40tude.net:
>>
>>> <?php
>>> foreach ($aname as $item){
>>> echo $aname[$item][1];
>>> echo " (".$aname[$item][2].")";
>>> }
>>> ?>
>>>
>>> I decided to create a second array that holds only the artist and number of
>>> records.
>>> So why am I getting "invalid argument" with this?
>>
>> Because you don't understand how foreach() works. RTFM.
>
> I did.
> There is a flaw in the works that is not discussed.
> That being, it won't work with brackted arrays.
> Works fine with standard arrays.
>
> While (){}. however works and could care less which is used.
>

What do you mean by "bracketed arrays"? There is no such thing!

foreach() works fine with ANY array.


--
==================
Remove the "x" from my email address
Jerry Stuckle
JDS Computer Training Corp.
jstucklex(at)attglobal(dot)net
==================
Re: foreach problem part two [message #184281 is a reply to message #184279] Thu, 19 December 2013 20:09 Go to previous messageGo to next message
Christoph Michael Bec is currently offline  Christoph Michael Bec
Messages: 207
Registered: June 2013
Karma: 0
Senior Member
add to buddy list
ignore all messages by this user
richard wrote:

> There is a flaw in the works that is not discussed.
> That being, it won't work with brackted arrays.
> Works fine with standard arrays.

Nonsense. PHP has only one array type.[1]

> While (){}. however works and could care less which is used.

Assume, you have an array:

$array = array('one', 'two', 'three');

Now you want to echo its elements in order. What is simpler and more
readable?

$i = 0;
while ($i < count($array)) {
echo $array[$i];
}

or

foreach ($array as $element) {
echo $element;
}

Additionally, the foreach loop is most likely faster.

[1] <http://www.php.net/manual/en/language.types.array.php>

--
Christoph M. Becker
Re: foreach problem part two [message #184283 is a reply to message #184279] Thu, 19 December 2013 22:11 Go to previous messageGo to next message
Doug Miller is currently offline  Doug Miller
Messages: 171
Registered: August 2011
Karma: 0
Senior Member
add to buddy list
ignore all messages by this user
richard <noreply(at)example(dot)com> wrote in news:y1yigdragnyw$.c2kv48q50osj.dlg@
40tude.net:

> On Thu, 19 Dec 2013 22:34:24 +0000 (UTC), Doug Miller wrote:
>
>> richard <noreply(at)example(dot)com> wrote in news:oib4w8z2sr5y$.15xxzxjds0xb0$.dlg@
>> 40tude.net:
>>
>>> <?php
>>> foreach ($aname as $item){
>>> echo $aname[$item][1];
>>> echo " (".$aname[$item][2].")";
>>> }
>>> ?>
>>>
>>> I decided to create a second array that holds only the artist and number of
>>> records.
>>> So why am I getting "invalid argument" with this?
>>
>> Because you don't understand how foreach() works. RTFM.
>
> I did.

Then read it again, because you obviously didn't understand it first time through.

> There is a flaw in the works that is not discussed.

No, there isn't. The only flaw here is your failure to understand the way foreach() works.
RTFM.

> That being, it won't work with brackted arrays.

That's *not* where the problem is in your code. RTFM.
Re: foreach problem part two [message #184284 is a reply to message #184281] Thu, 19 December 2013 23:05 Go to previous messageGo to next message
Mr Oldies is currently offline  Mr Oldies
Messages: 241
Registered: October 2013
Karma: 0
Senior Member
add to buddy list
ignore all messages by this user
On Fri, 20 Dec 2013 02:09:46 +0100, Christoph Michael Becker wrote:

> richard wrote:
>
>> There is a flaw in the works that is not discussed.
>> That being, it won't work with brackted arrays.
>> Works fine with standard arrays.
>
> Nonsense. PHP has only one array type.[1]
>
>> While (){}. however works and could care less which is used.
>
> Assume, you have an array:
>
> $array = array('one', 'two', 'three');
>
> Now you want to echo its elements in order. What is simpler and more
> readable?
>
> $i = 0;
> while ($i < count($array)) {
> echo $array[$i];
> }
>
> or
>
> foreach ($array as $element) {
> echo $element;
> }
>
> Additionally, the foreach loop is most likely faster.
>
> [1] <http://www.php.net/manual/en/language.types.array.php>

As you and others so kindly keep repeating, RTFM!

$array[0][0]="data"

Is 100% valid!

In the arrays manual, it shows the use of bracketed arrays several times.
So why don't you tell them they are wrong?
Re: foreach problem part two [message #184285 is a reply to message #184284] Thu, 19 December 2013 23:37 Go to previous messageGo to next message
Richard Damon is currently offline  Richard Damon
Messages: 58
Registered: August 2011
Karma: 0
Member
add to buddy list
ignore all messages by this user
On 12/19/13, 11:05 PM, richard wrote:
> On Fri, 20 Dec 2013 02:09:46 +0100, Christoph Michael Becker wrote:
>
>> richard wrote:
>>
>>> There is a flaw in the works that is not discussed.
>>> That being, it won't work with brackted arrays.
>>> Works fine with standard arrays.
>>
>> Nonsense. PHP has only one array type.[1]
>>
>>> While (){}. however works and could care less which is used.
>>
>> Assume, you have an array:
>>
>> $array = array('one', 'two', 'three');
>>
>> Now you want to echo its elements in order. What is simpler and more
>> readable?
>>
>> $i = 0;
>> while ($i < count($array)) {
>> echo $array[$i];
>> }
>>
>> or
>>
>> foreach ($array as $element) {
>> echo $element;
>> }
>>
>> Additionally, the foreach loop is most likely faster.
>>
>> [1] <http://www.php.net/manual/en/language.types.array.php>
>
> As you and others so kindly keep repeating, RTFM!
>
> $array[0][0]="data"
>
> Is 100% valid!
>
> In the arrays manual, it shows the use of bracketed arrays several times.
> So why don't you tell them they are wrong?
>

As far as I can tell, the PHP Manual NEVER calls this a "bracketed
array", and an array created this way is indistinguishable (after
creation) from the array created with the array() operator.

Creating a previously non-existent member by this member in a previously
created array does have some advantages.

I will also note, that you original program had no line like this (at
least that you showed us).
Re: foreach problem part two [message #184286 is a reply to message #184279] Fri, 20 December 2013 01:52 Go to previous messageGo to next message
Arno Welzel is currently offline  Arno Welzel
Messages: 317
Registered: October 2011
Karma: 0
Senior Member
add to buddy list
ignore all messages by this user
richard, 2013-12-20 00:39:

> On Thu, 19 Dec 2013 22:34:24 +0000 (UTC), Doug Miller wrote:
>
>> richard <noreply(at)example(dot)com> wrote in news:oib4w8z2sr5y$.15xxzxjds0xb0$.dlg@
>> 40tude.net:
>>
>>> <?php
>>> foreach ($aname as $item){
>>> echo $aname[$item][1];
>>> echo " (".$aname[$item][2].")";
>>> }
>>> ?>
>>>
>>> I decided to create a second array that holds only the artist and number of
>>> records.
>>> So why am I getting "invalid argument" with this?
>>
>> Because you don't understand how foreach() works. RTFM.
>
> I did.
> There is a flaw in the works that is not discussed.
> That being, it won't work with brackted arrays.
> Works fine with standard arrays.

Sigh...

There is no thing like "bracketed arrays" or "standard arrays". This is
called one-dimensional and multi-dimensional. And of course foreach()
works fine with every kind of array.

<?php
$myarray = array(
array( 'Apple', 1 ),
array( 'Pie', 2 )
);

foreach($myarray as $item)
{
echo $item[0] . ' - ' . $item[1] . '<br />';
}
?>

You just don't understand it - as usual.

> While (){}. however works and could care less which is used.

As usual. while() needs more code, is slower and is prone to errors.

Really - software development is not your thing. It seems you are
mentally not capable of understanding the principles.


--
Arno Welzel
http://arnowelzel.de
http://de-rec-fahrrad.de
Re: foreach problem part two [message #184287 is a reply to message #184270] Fri, 20 December 2013 02:07 Go to previous messageGo to next message
Evan Platt is currently offline  Evan Platt
Messages: 124
Registered: November 2010
Karma: 0
Senior Member
add to buddy list
ignore all messages by this user
On Thu, 19 Dec 2013 20:00:41 +0100, Christoph Michael Becker
<cmbecker69(at)arcor(dot)de> wrote:

> You may consider reading the manual:
> <http://www.php.net/manual/en/control-structures.foreach.php>.

Why bother when he's got hundreds of free experts at his disposal to
write his website for him here
--
To reply via e-mail, remove The Obvious and .invalid from my e-mail address.
Re: foreach problem part two [message #184289 is a reply to message #184287] Fri, 20 December 2013 03:59 Go to previous messageGo to next message
Scott Johnson is currently offline  Scott Johnson
Messages: 196
Registered: January 2012
Karma: 0
Senior Member
add to buddy list
ignore all messages by this user
On 12/19/2013 11:07 PM, Evan Platt wrote:
> On Thu, 19 Dec 2013 20:00:41 +0100, Christoph Michael Becker
> <cmbecker69(at)arcor(dot)de> wrote:
>
>> You may consider reading the manual:
>> <http://www.php.net/manual/en/control-structures.foreach.php>.
>
> Why bother when he's got hundreds of free experts at his disposal to
> write his website for him here
>

Hey everyone needs a hobby. ;)
Re: foreach problem part two [message #184291 is a reply to message #184284] Fri, 20 December 2013 07:11 Go to previous messageGo to next message
Norman Peelman is currently offline  Norman Peelman
Messages: 126
Registered: September 2010
Karma: 0
Senior Member
add to buddy list
ignore all messages by this user
On 12/19/2013 11:05 PM, richard wrote:
> On Fri, 20 Dec 2013 02:09:46 +0100, Christoph Michael Becker wrote:
>
>> richard wrote:
>>
>>> There is a flaw in the works that is not discussed.
>>> That being, it won't work with brackted arrays.
>>> Works fine with standard arrays.
>>
>> Nonsense. PHP has only one array type.[1]
>>
>>> While (){}. however works and could care less which is used.
>>
>> Assume, you have an array:
>>
>> $array = array('one', 'two', 'three');
>>
>> Now you want to echo its elements in order. What is simpler and more
>> readable?
>>
>> $i = 0;
>> while ($i < count($array)) {
>> echo $array[$i];
>> }
>>
>> or
>>
>> foreach ($array as $element) {
>> echo $element;
>> }
>>
>> Additionally, the foreach loop is most likely faster.
>>
>> [1] <http://www.php.net/manual/en/language.types.array.php>
>
> As you and others so kindly keep repeating, RTFM!
>
> $array[0][0]="data"
>
> Is 100% valid!
>
> In the arrays manual, it shows the use of bracketed arrays several times.
> So why don't you tell them they are wrong?
>


Then maybe you should read it again, specifically "Creating/modifying
with square bracket syntax". That tells you why it isn't working.

However:

$year = "60";
$alist = "art".$year;

$$alist = array(0 => array(0 => "00", 1 => "01"), 1 => array(0 => "10",
1 => "11"));

....is a small example of what you are trying to do.

--
Norman
Registered Linux user #461062
-Have you been to www.php.net yet?-
Re: foreach problem part two [message #184292 is a reply to message #184285] Fri, 20 December 2013 07:14 Go to previous messageGo to next message
Norman Peelman is currently offline  Norman Peelman
Messages: 126
Registered: September 2010
Karma: 0
Senior Member
add to buddy list
ignore all messages by this user
On 12/19/2013 11:37 PM, Richard Damon wrote:
> On 12/19/13, 11:05 PM, richard wrote:
>> On Fri, 20 Dec 2013 02:09:46 +0100, Christoph Michael Becker wrote:
>>
>>> richard wrote:
>>>
>>>> There is a flaw in the works that is not discussed.
>>>> That being, it won't work with brackted arrays.
>>>> Works fine with standard arrays.
>>>
>>> Nonsense. PHP has only one array type.[1]
>>>
>>>> While (){}. however works and could care less which is used.
>>>
>>> Assume, you have an array:
>>>
>>> $array = array('one', 'two', 'three');
>>>
>>> Now you want to echo its elements in order. What is simpler and more
>>> readable?
>>>
>>> $i = 0;
>>> while ($i < count($array)) {
>>> echo $array[$i];
>>> }
>>>
>>> or
>>>
>>> foreach ($array as $element) {
>>> echo $element;
>>> }
>>>
>>> Additionally, the foreach loop is most likely faster.
>>>
>>> [1] <http://www.php.net/manual/en/language.types.array.php>
>>
>> As you and others so kindly keep repeating, RTFM!
>>
>> $array[0][0]="data"
>>
>> Is 100% valid!
>>
>> In the arrays manual, it shows the use of bracketed arrays several times.
>> So why don't you tell them they are wrong?
>>
>
> As far as I can tell, the PHP Manual NEVER calls this a "bracketed
> array", and an array created this way is indistinguishable (after
> creation) from the array created with the array() operator.
>
> Creating a previously non-existent member by this member in a previously
> created array does have some advantages.
>
> I will also note, that you original program had no line like this (at
> least that you showed us).
>

This is not 100% legal syntax because the second [0] acts as a string
offset instead of an index:

$alist[0][0] = "data";
Fatal error: Cannot use string offset as an array... you must use
*array()* to set these up.

--
Norman
Registered Linux user #461062
-Have you been to www.php.net yet?-
Re: foreach problem part two [message #184293 is a reply to message #184284] Fri, 20 December 2013 08:17 Go to previous messageGo to next message
Doug Miller is currently offline  Doug Miller
Messages: 171
Registered: August 2011
Karma: 0
Senior Member
add to buddy list
ignore all messages by this user
richard <noreply(at)example(dot)com> wrote in news:t6ds31so68b7.1s80a7lxre6po$.dlg@
40tude.net:

> $array[0][0]="data"
>
> Is 100% valid!
>
> In the arrays manual, it shows the use of bracketed arrays several times.
> So why don't you tell them they are wrong?

The problem isn't your array notation, the problem is your misunderstanding of how foreach()
works. RTFM.
Re: foreach problem part two [message #184295 is a reply to message #184292] Fri, 20 December 2013 10:35 Go to previous messageGo to next message
Thomas 'PointedEars'  is currently offline  Thomas 'PointedEars'
Messages: 701
Registered: October 2010
Karma: 0
Senior Member
add to buddy list
ignore all messages by this user
Norman Peelman wrote:

> This is not 100% legal syntax because the second [0] acts as a string
> offset instead of an index:
>
> $alist[0][0] = "data";
> Fatal error: Cannot use string offset as an array... you must use
> *array()* to set these up.

Unsurprisingly, utter nonsense from you again.

$ php -r '$a[0] = 42; var_dump($a["0"]);'
int(42)

In fact,

$alist[0][0] = "data";

is equivalent to

$alist = array(array("data"));

or

$alist = array(0 => array("data"));

or

$alist = array(array(0 => "data"));

or

$alist = array(0 => array(0 => "data"));

or variations of that where the key is the string '0' or "0", if $alist did
not exist before.

It is equivalent to

$alist[0] = array("data");

and variations of that, including those where the keys are '0', if $alist
existed before but did not have an element with key 0.

And it is equivalent to itself if $alist[0] referred to an array before
(i.e., it modifies the element with index 0 of the array that is the element
with index 0 of the outer array).

That you can create „multi-dimensional“ arrays, which can even be
associative, with just one line, is the beauty of PHP.


PointedEars
--
realism: HTML 4.01 Strict
evangelism: XHTML 1.0 Strict
madness: XHTML 1.1 as application/xhtml+xml
-- Bjoern Hoehrmann
Re: foreach problem part two [message #184296 is a reply to message #184284] Fri, 20 December 2013 12:14 Go to previous messageGo to next message
Evan Platt is currently offline  Evan Platt
Messages: 124
Registered: November 2010
Karma: 0
Senior Member
add to buddy list
ignore all messages by this user
On Thu, 19 Dec 2013 23:05:59 -0500, richard <noreply(at)example(dot)com>
wrote:

> As you and others so kindly keep repeating, RTFM!
>
> $array[0][0]="data"
>
> Is 100% valid!
>
> In the arrays manual, it shows the use of bracketed arrays several times.
> So why don't you tell them they are wrong?

Why don't you submit it as a bug if you're so confident you're right,
bullis?

Then show us the bug link.

Please.

This should be good.
--
To reply via e-mail, remove The Obvious and .invalid from my e-mail address.
Re: foreach problem part two [message #184298 is a reply to message #184279] Fri, 20 December 2013 13:37 Go to previous messageGo to next message
Denis McMahon is currently offline  Denis McMahon
Messages: 634
Registered: September 2010
Karma: 0
Senior Member
add to buddy list
ignore all messages by this user
On Thu, 19 Dec 2013 18:39:28 -0500, richard wrote:

> On Thu, 19 Dec 2013 22:34:24 +0000 (UTC), Doug Miller wrote:
>
>> richard <noreply(at)example(dot)com> wrote in
>> news:oib4w8z2sr5y$.15xxzxjds0xb0$.dlg@
>> 40tude.net:
>>
>>> <?php
>>> foreach ($aname as $item){
>>> echo $aname[$item][1];
>>> echo " (".$aname[$item][2].")";
>>> }
>>> ?>
>>>
>>> I decided to create a second array that holds only the artist and
>>> number of records.
>>> So why am I getting "invalid argument" with this?
>>
>> Because you don't understand how foreach() works. RTFM.
>
> I did.
> There is a flaw in the works that is not discussed.
> That being, it won't work with brackted arrays.
> Works fine with standard arrays.

Foreach works with all arrays. At the foreach level, all arrays are one-
dimensional, in that foreach works with the topmost dimension of the
array being processed.

The only flaw is your lack of understanding of how foreach works.

If you read and comprehended the manual entry for foreach, you would
realise this.

--
Denis McMahon, denismfmcmahon(at)gmail(dot)com
Re: fixed! (was: foreach problem part two) [message #184299 is a reply to message #184277] Fri, 20 December 2013 13:48 Go to previous messageGo to next message
Denis McMahon is currently offline  Denis McMahon
Messages: 634
Registered: September 2010
Karma: 0
Senior Member
add to buddy list
ignore all messages by this user
On Thu, 19 Dec 2013 16:07:52 -0500, richard wrote:

> This version not only shows the names, but the number of songs each
> produced as well.

What you actually wanted to do was something like this:

foreach($art60 as $tmp)echo"<div class='blu'>{$tmp[0]} (".count
($tmp).")</div>";

--
Denis McMahon, denismfmcmahon(at)gmail(dot)com
Re: foreach problem part two [message #184300 is a reply to message #184284] Fri, 20 December 2013 13:52 Go to previous messageGo to next message
Denis McMahon is currently offline  Denis McMahon
Messages: 634
Registered: September 2010
Karma: 0
Senior Member
add to buddy list
ignore all messages by this user
On Thu, 19 Dec 2013 23:05:59 -0500, richard wrote:

> On Fri, 20 Dec 2013 02:09:46 +0100, Christoph Michael Becker wrote:
>
>> richard wrote:
>>
>>> There is a flaw in the works that is not discussed.
>>> That being, it won't work with brackted arrays.
>>> Works fine with standard arrays.
>>
>> Nonsense. PHP has only one array type.[1]

> As you and others so kindly keep repeating, RTFM!
>
> $array[0][0]="data"
>
> Is 100% valid!

Yes, it's an array of arrays. But it's still just an array of things,
even if each thing is an array.

PHP has a single array type. An array is a collection of things. The
things can be arrays, ints, strings, classes, etc, but the containing
array is just an array of things.

--
Denis McMahon, denismfmcmahon(at)gmail(dot)com
Re: foreach problem part two [message #184536 is a reply to message #184281] Mon, 06 January 2014 23:13 Go to previous messageGo to next message
John Smith is currently offline  John Smith
Messages: 7
Registered: January 2014
Karma: 0
Junior Member
add to buddy list
ignore all messages by this user
On Fri, 20 Dec 2013 02:09:46 +0100, Christoph Michael Becker
<cmbecker69(at)arcor(dot)de> wrote:

> richard wrote:
>
>> There is a flaw in the works that is not discussed.
>> That being, it won't work with brackted arrays.
>> Works fine with standard arrays.
>
> Nonsense. PHP has only one array type.[1]
>
>> While (){}. however works and could care less which is used.
>
> Assume, you have an array:
>
> $array = array('one', 'two', 'three');
>
> Now you want to echo its elements in order. What is simpler and more
> readable?
>
> $i = 0;
> while ($i < count($array)) {
> echo $array[$i];
> }
>
> or
>
> foreach ($array as $element) {
> echo $element;
> }
>
> Additionally, the foreach loop is most likely faster.
>
> [1] <http://www.php.net/manual/en/language.types.array.php>

At the first example you don't have to increment the $i?

John
Re: foreach problem part two [message #184538 is a reply to message #184536] Tue, 07 January 2014 04:07 Go to previous message
Christoph Michael Bec is currently offline  Christoph Michael Bec
Messages: 207
Registered: June 2013
Karma: 0
Senior Member
add to buddy list
ignore all messages by this user
John Smith wrote:

> On Fri, 20 Dec 2013 02:09:46 +0100, Christoph Michael Becker
> <cmbecker69(at)arcor(dot)de> wrote:
>
>> Assume, you have an array:
>>
>> $array = array('one', 'two', 'three');
>>
>> Now you want to echo its elements in order. What is simpler and more
>> readable?
>>
>> $i = 0;
>> while ($i < count($array)) {
>> echo $array[$i];
>> }
>
> At the first example you don't have to increment the $i?

Oops! Of course you'd have to:

$i = 0;
while ($i < count($array)) {
echo $array[$i];
$i++;
}

--
Christoph M. Becker
Quick Reply
Formatting Tools:   
  Switch to threaded view of this topic Create a new topic
Previous Topic: PHP sql entry is a godaweful mess
Next Topic: Math Formula Question - Need Ideas
Goto Forum:
  

-=] Back to Top [=-
[ Syndicate this forum (XML) ] [ RSS ]

Current Time: Mon Oct 23 11:08:27 EDT 2017

Total time taken to generate the page: 0.00936 seconds