3v4l.org

run code in 300+ PHP versions simultaneously
<?php $a= [['a', 10], ['b', 11], ['c', 12], ['d', 13]]; $b = [['k', 21], ['l', 22], ['m', 23]]; $diff = array_udiff($a, $b, function($o1, $o2) { echo 'comparing ' . $o1[0] . ', ' . $o2[0] . '\n'; return $o1[1] - $o2[1]; }); var_dump($diff);
Output for 7.0.0 - 7.0.20, 7.1.0 - 7.1.20, 7.2.6 - 7.2.33, 7.3.16 - 7.3.33, 7.4.0 - 7.4.33, 8.0.0 - 8.0.30, 8.1.0 - 8.1.28, 8.2.0 - 8.2.18, 8.3.0 - 8.3.6
comparing a, b\ncomparing b, c\ncomparing c, d\ncomparing k, l\ncomparing l, m\ncomparing a, k\ncomparing a, b\ncomparing b, k\ncomparing b, c\ncomparing c, k\ncomparing c, d\ncomparing d, k\narray(4) { [0]=> array(2) { [0]=> string(1) "a" [1]=> int(10) } [1]=> array(2) { [0]=> string(1) "b" [1]=> int(11) } [2]=> array(2) { [0]=> string(1) "c" [1]=> int(12) } [3]=> array(2) { [0]=> string(1) "d" [1]=> int(13) } }
Output for 5.5.0 - 5.5.38, 5.6.0 - 5.6.28
comparing b, a\ncomparing b, c\ncomparing d, b\ncomparing c, b\ncomparing d, c\ncomparing l, k\ncomparing m, l\ncomparing a, k\ncomparing a, b\ncomparing b, k\ncomparing b, c\ncomparing c, k\ncomparing c, d\ncomparing d, k\narray(4) { [0]=> array(2) { [0]=> string(1) "a" [1]=> int(10) } [1]=> array(2) { [0]=> string(1) "b" [1]=> int(11) } [2]=> array(2) { [0]=> string(1) "c" [1]=> int(12) } [3]=> array(2) { [0]=> string(1) "d" [1]=> int(13) } }

preferences:
186.58 ms | 403 KiB | 224 Q