473,407 Members | 2,326 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,407 software developers and data experts.

php bug?

In the code below I merge array $b with each element of array $a.
So array $a must be after:
$a == array(array(1, 2, 6, 7, 8), array(2, 3, 6, 7, 8), array(4, 5, 6,
7, 8));

instead, it seems to overwrite last element of $a with before-last and
we have:
$a == array(array(1, 2, 6, 7, 8), array(2, 3, 6, 7, 8), array(2, 3, 6,
7, 8));

php version: PHP 5.1.0RC1 (cli) (built: Aug 16 2005 13:51:15)
(the windows version)

It is a php bug or a my bug?

I see that var_dump($a); prints the corrent data but when I print
element-element var_dump it prints the before-last element two times and
last element zero times.

----------------------------------------------
<?
$a = array(array(1, 2), array(2, 3), array(4, 5));
$b = array(6, 7, 8);

foreach($a as & $v)
$v = array_merge($v, $b);

var_dump($a);
foreach($a as $v)
var_dump($v);
?>
----------------------------------------------
Dec 11 '05 #1
5 1137
Chameleon wrote:
I see that var_dump($a); prints the corrent data but when I print
element-element var_dump it prints the before-last element two times
and last element zero times.


Unreproducable with version 5.1.1; upgrade to this version first, then try
it again.
JW
Dec 11 '05 #2
Chameleon wrote:
$a == array(

^^

Should be a single equals sign, right?

--
Toby A Inkster BSc (Hons) ARCS
Contact Me ~ http://tobyinkster.co.uk/contact

Dec 11 '05 #3
Toby Inkster wrote:
Chameleon wrote:
$a == array(

^^

Should be a single equals sign, right?


So array $a must be after:
$a == array(array(1, 2, 6, 7, 8), array(2, 3, 6, 7, 8), array(4, 5, 6,
7, 8));
I mean:
So array $a must be after equals to array(array(1, 2, 6, 7, 8), array(2,
3, 6, 7, 8), array(4, 5, 6, 7, 8));
Dec 11 '05 #4
Chameleon wrote:
It is a php bug or a my bug?


It's your bug I suspect. The problem can't be reproduced with the code
as given. If you move the var_dump($a) to the end, then you see it.

<?

$a = array(array(1, 2), array(2, 3), array(4, 5));
$b = array(6, 7, 8);

foreach($a as & $v)
$v = array_merge($v, $b);

foreach($a as $v)
var_dump($v);

var_dump($a);

?>

The second foreach() is setting the value of $v to each element in $a.
At this point, $v is still pointing to the last element in $a,
resulting from the first foreach(). The last element in $a is thus is
set repeatedly to all elements preceding it.

It's a good idea to unset() references when they're no longer needed to
avoid unintended modification later on.

Dec 11 '05 #5
Chameleon wrote:
----------------------------------------------
<?
$a = array(array(1, 2), array(2, 3), array(4, 5));
$b = array(6, 7, 8);

foreach($a as & $v)
$v = array_merge($v, $b);
/* references or no references I don't like to change
* the values that control the foreach() loop.
* I changed your foreach() code and it worked here.
*/
$tmp = array();
foreach($a as $v)
$tmp[] = array_merge($v, $b);
$a = $tmp;
unset($tmp);

var_dump($a);
foreach($a as $v)
var_dump($v);
?>
----------------------------------------------


Dec 11 '05 #6

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

3
by: William C. White | last post by:
Does anyone know of a way to use PHP /w Authorize.net AIM without using cURL? Our website is hosted on a shared drive and the webhost company doesn't installed additional software (such as cURL)...
2
by: Albert Ahtenberg | last post by:
Hello, I don't know if it is only me but I was sure that header("Location:url") redirects the browser instantly to URL, or at least stops the execution of the code. But appearantely it continues...
3
by: James | last post by:
Hi, I have a form with 2 fields. 'A' 'B' The user completes one of the fields and the form is submitted. On the results page I want to run a query, but this will change subject to which...
0
by: Ollivier Robert | last post by:
Hello, I'm trying to link PHP with Oracle 9.2.0/OCI8 with gcc 3.2.3 on a Solaris9 system. The link succeeds but everytime I try to run php, I get a SEGV from inside the libcnltsh.so library. ...
1
by: Richard Galli | last post by:
I want viewers to compare state laws on a single subject. Imagine a three-column table with a drop-down box on the top. A viewer selects a state from the list, and that state's text fills the...
4
by: Albert Ahtenberg | last post by:
Hello, I have two questions. 1. When the user presses the back button and returns to a form he filled the form is reseted. How do I leave there the values he inserted? 2. When the...
1
by: inderjit S Gabrie | last post by:
Hi all Here is the scenerio ...is it possibly to do this... i am getting valid course dates output on to a web which i have designed ....all is okay so far , look at the following web url ...
2
by: Jack | last post by:
Hi All, What is the PHP equivilent of Oracle bind variables in a SQL statement, e.g. select x from y where z=:parameter Which in asp/jsp would be followed by some statements to bind a value...
3
by: Sandwick | last post by:
I am trying to change the size of a drawing so they are all 3x3. the script below is what i was trying to use to cut it in half ... I get errors. I can display the normal picture but not the...
0
by: Charles Arthur | last post by:
How do i turn on java script on a villaon, callus and itel keypad mobile phone
0
BarryA
by: BarryA | last post by:
What are the essential steps and strategies outlined in the Data Structures and Algorithms (DSA) roadmap for aspiring data scientists? How can individuals effectively utilize this roadmap to progress...
1
by: nemocccc | last post by:
hello, everyone, I want to develop a software for my android phone for daily needs, any suggestions?
0
by: Hystou | last post by:
There are some requirements for setting up RAID: 1. The motherboard and BIOS support RAID configuration. 2. The motherboard has 2 or more available SATA protocol SSD/HDD slots (including MSATA, M.2...
0
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers,...
0
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven...
0
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each...
0
agi2029
by: agi2029 | last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing,...
0
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome a new...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.