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

 ID:                 62497
 User updated by:    martin at psinas dot com
 Reported by:        martin at psinas dot com
 Summary:            array_intersect doesn't work properly when data is
                     reversed with duplicates
-Status:             Open
+Status:             Closed
 Type:               Bug
 Package:            Arrays related
 Operating System:   Linux
 PHP Version:        5.4.4
 Block user comment: N
 Private report:     N

 New Comment:

not a bug.


Previous Comments:
------------------------------------------------------------------------
[2012-07-06 22:30:27] martin at psinas dot com

Description:
------------
As mentioned here:
http://us3.php.net/manual/en/function.array-intersect.php#92900

array_intersect doesn't work properly when data is reversed with duplicates

Test script:
---------------
<?php
$text1 = "one two two";
$text2 = "one two three";

$old = explode(' ', $text1);
$new = explode(' ', $text2);

$preserved1 = array_intersect($old, $new);
$deleted = array_diff($old, $preserved1);
$preserved2 = array_intersect($new, $old);
$inserted = array_diff($new, $preserved2);

echo '<pre>';
print_r($preserved1);
print_r($deleted);
print_r($preserved2);
print_r($inserted);
echo '<pre>';
?>

Expected result:
----------------
Array
(
    [0] => one
    [1] => two
)
Array
(
    [2] => three
)
Array
(
    [0] => one
    [1] => two
)
Array
(
    [2] => three
)

Actual result:
--------------
Array
(
    [0] => one
    [1] => two
    [2] => two
)
Array
(
)
Array
(
    [0] => one
    [1] => two
)
Array
(
    [2] => three
)


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



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

Reply via email to