Prev: if/elseif being treated as if/if
Next: SEO Experts?
From: MikeB on 25 Sep 2010 16:31 I have the following code: $query = "SELECT * FROM classics"; $result = mysql_query($query); if (!$result) die ("Database access failed: " . mysql_error()); $rows = mysql_num_rows($result); for ($j = 0 ; $j < $rows ; ++$j) { $results[] = mysql_fetch_array($result); } mysql_close($db_server); My question, in the loop, why does tha author use: $results[] = mysql_fetch_array($result); instead of (as I would expect): $results[$j] = mysql_fetch_array($result);? What PHP magic is at work here? Thanks.
From: chris h on 25 Sep 2010 17:05 Mike, $results[] will automatically push a value unto the end of an array. So doing this... ------ $magic = array(); $magic[] = 'a'; $magic[] = 'b'; $magic[] = 'c'; ----- is exactly this same as doing this... ------ $normal = array(); $normal[0] = 'a'; $normal[1] = 'b'; $normal[2] = 'c'; ----- And yes, in your example "$results[]" would be equivalent to "$results[$j]" For more reference: http://www.php.net/manual/en/language.types.array.php Chris H. On Sat, Sep 25, 2010 at 4:31 PM, MikeB <mpbrede(a)gmail.com> wrote: > I have the following code: > > $query = "SELECT * FROM classics"; > $result = mysql_query($query); > > if (!$result) die ("Database access failed: " . mysql_error()); > $rows = mysql_num_rows($result); > > for ($j = 0 ; $j < $rows ; ++$j) > { > $results[] = mysql_fetch_array($result); > } > > mysql_close($db_server); > > My question, in the loop, why does tha author use: > > $results[] = mysql_fetch_array($result); > > instead of (as I would expect): > > $results[$j] = mysql_fetch_array($result);? > > What PHP magic is at work here? > > Thanks. > > > -- > PHP General Mailing List (http://www.php.net/) > To unsubscribe, visit: http://www.php.net/unsub.php > >
From: "=?utf-8?B?YXNoQGFzaGxleXNoZXJpZGFuLmNvLnVr?=" on 26 Sep 2010 06:03 I'd also like to add to that: $array = array(); $array[] = 'text'; $array[2] = 123; $array[] = 'hello'; Would output: $array( 0 => 'text', 2 => 123, 3 => 'hello', ); Note the missing index 1, as php makes a numerical index that is one greater than the highest already in use. As the index 2 was explicitly created, php made the next one at 3. Thanks, Ash http://www.ashleysheridan.co.uk ----- Reply message ----- From: "chris h" <chris404(a)gmail.com> Date: Sat, Sep 25, 2010 22:05 Subject: [PHP] Array question To: "MikeB" <mpbrede(a)gmail.com> Cc: <php-general(a)lists.php.net> Mike, $results[] will automatically push a value unto the end of an array. So doing this... ------ $magic = array(); $magic[] = 'a'; $magic[] = 'b'; $magic[] = 'c'; ----- is exactly this same as doing this... ------ $normal = array(); $normal[0] = 'a'; $normal[1] = 'b'; $normal[2] = 'c'; ----- And yes, in your example "$results[]" would be equivalent to "$results[$j]" For more reference: http://www.php.net/manual/en/language.types.array.php Chris H. On Sat, Sep 25, 2010 at 4:31 PM, MikeB <mpbrede(a)gmail.com> wrote: > I have the following code: > > $query = "SELECT * FROM classics"; > $result = mysql_query($query); > > if (!$result) die ("Database access failed: " . mysql_error()); > $rows = mysql_num_rows($result); > > for ($j = 0 ; $j < $rows ; ++$j) > { > $results[] = mysql_fetch_array($result); > } > > mysql_close($db_server); > > My question, in the loop, why does tha author use: > > $results[] = mysql_fetch_array($result); > > instead of (as I would expect): > > $results[$j] = mysql_fetch_array($result);? > > What PHP magic is at work here? > > Thanks. > > > -- > PHP General Mailing List (http://www.php.net/) > To unsubscribe, visit: http://www.php.net/unsub.php > >
From: tedd on 26 Sep 2010 10:18 At 3:31 PM -0500 9/25/10, MikeB wrote: >-snip- > >My question, in the loop, why does tha author use: > >$results[] = mysql_fetch_array($result); > >instead of (as I would expect): > >$results[$j] = mysql_fetch_array($result);? > >What PHP magic is at work here? Mike: That's just a shorthand way to populate an array in PHP. One of the reasons for this feature is that somewhere in your code you may not know what the next index should be. So, if you use -- $results[] = $next_item; -- then the $next_item will be "automagically" added to the next available index in the array. So you may be right in calling it "PHP magic" because I have not seen this in other languages. Understand? Cheers, tedd -- ------- http://sperling.com/
|
Pages: 1 Prev: if/elseif being treated as if/if Next: SEO Experts? |