Edit report at https://bugs.php.net/bug.php?id=60278&edit=1
ID: 60278 Updated by: ras...@php.net Reported by: kontakt at beberlei dot de Summary: BC Break + warning in array_diff with nested arrays -Status: Open +Status: Bogus Type: Bug Package: Arrays related PHP Version: 5.4.0RC1 Block user comment: N Private report: N New Comment: This isn't a BC break. This is a NOTICE telling you that your code isn't doing what you think it is. As per the array_diff() docs: "This function only checks one dimension of a n-dimensional array." Change your example to this: $a = [0 => ["foo"]]; $b = [0 => ["bar"]]; $d = array_diff($a, $b); This comes back and tells you that the arrays are identical. But they obviously aren't. Or even worse: $a = [0 => "Array"]; $b = [0 => ["bar"]]; $d = array_diff($a, $b); This also comes back with no difference between $a and $b exactly because the function only checks one level deep and you are passing it multi-dimensional arrays. Notices like this are there to tell you when you are doing something that might not produce the results you are expecting, and this is a very obvious example of that. Previous Comments: ------------------------------------------------------------------------ [2011-11-15 00:55:51] fel...@php.net The difference is only the E_NOTICE message, the code behaves in the sameway. ------------------------------------------------------------------------ [2011-11-12 09:55:34] kontakt at beberlei dot de Description: ------------ A warning occurs when you call array_diff with one nested and one flat array. This code worked on 5.3. Test script: --------------- <?php $a = array(0 => "id"); $b = array(0 => array("foo" => "bar")); $d = array_diff($a, $b); var_dump($d); Expected result: ---------------- array(1) { [0]=> string(2) "id" } Actual result: -------------- Notice: Array to string conversion in /home/benny/code/php/tests/array_diff.php on line 6 array(1) { [0]=> string(2) "id" } ------------------------------------------------------------------------ -- Edit this bug report at https://bugs.php.net/bug.php?id=60278&edit=1