Bug #60932 [Opn->Nab]: array_diff_assoc not working as expected.

From: Date: Mon, 30 Jan 2012 11:29:04 +0000
Subject: Bug #60932 [Opn->Nab]: array_diff_assoc not working as expected.
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-166956@lists.php.net to get a copy of this message
Edit report at https://bugs.php.net/bug.php?id=60932&edit=1

 ID:                 60932
 Updated by:         johannes@php.net
 Reported by:        rupertrutland at gmail dot com
 Summary:            array_diff_assoc not working as expected.
-Status:             Open
+Status:             Not a bug
 Type:               Bug
 Package:            *General Issues
 Operating System:   MAC OSX 10.6.8
 PHP Version:        5.3.9
 Block user comment: N
 Private report:     N

 New Comment:

The issue is in your array definition:

$arrayAssoc2 = array(
	'one' => '1: some val',
/*...*/
	'one' => '2: some val',
/*...*/
);

so you're overwriting the key 'one' again. If you replace the second 'one'
with 'four' it works as you expect.


Previous Comments:
------------------------------------------------------------------------
[2012-01-30 07:06:50] rupertrutland at gmail dot com

Description:
------------
The first key/value pair should, in theory, not be present in the result array.

Test script:
---------------
$arrayAssoc1 = array(
	'one' => '1: some val',
	'two' => '1: another val',
	'three' => '1: and another val',
	'four' => '1: fourth val',
	'five' => '1: fifth val',
	'six' => '1: sixth param',
	'seven' => '1: sixth param',
	'starwars' => '2: lightsaber'
);
$arrayAssoc2 = array(
	'one' => '1: some val',
	'two' => '1: another val',
	'three' => '1: and another val',
	'one' => '2: some val',
	'five' => '1: fifth val',
	'three' => '2: and another val',
	'seven' => '2: and another val',
	'starwars' => '2: lightsaber'
);
var_dump(array_diff_assoc($arrayAssoc1, $arrayAssoc2));

Expected result:
----------------
array(5) {
  ["three"] => string(18) "1: and another val"
  ["four"] => string(13) "1: fourth val"
  ["six"] => string(14) "1: sixth param"
  ["seven"] => string(14) "1: sixth param"
}

Actual result:
--------------
array(5) {
  ["one"] => string(11) "1: some val"
  ["three"] => string(18) "1: and another val"
  ["four"] => string(13) "1: fourth val"
  ["six"] => string(14) "1: sixth param"
  ["seven"] => string(14) "1: sixth param"
}


------------------------------------------------------------------------



-- 
Edit this bug report at https://bugs.php.net/bug.php?id=60932&edit=1


Thread (2 messages)

« previous php.bugs (#166956) next »