I'm having trouble with array_diff_assoc because the result is not right. Im'm getting key [3] as a result in $diff but it exists in both $c1 and $c2 so the result in $diff doesn't makes sense since I'm using array_diff_assoc()
. I should be getting key[0] from $c2 along with the other two keys [1] and [2] from $diff which are correct.
Query1 results in this array $c2
Array([0] => Array
([PROCESSO] => 1614436
[DATAMSG] => 2015-04-27 22
[CATEGORIA_DESC] => ECG_HR
[VALOR] => 135
[CRITICO] => 1)
[1] => Array
([PROCESSO] => 1614436
[DATAMSG] => 2015-04-27 23
[CATEGORIA_DESC] => ECG_HR
[VALOR] => 121
[CRITICO] => 1)
[2] => Array
([PROCESSO] => 1614436
[DATAMSG] => 2015-04-27 23
[CATEGORIA_DESC] => ECG_HR
[VALOR] => 123
[CRITICO] => 1)
[3] => Array
([PROCESSO] => 1614436
[DATAMSG] => 2015-04-27 23
[CATEGORIA_DESC] => ECG_HR
[VALOR] => 125
[CRITICO] => 1))
Query 2 results in this array $c1
Array([0] => Array
([PROCESSO] => 1614436
[DATAMSG] => 2015-04-27 23
[CATEGORIA_DESC] => ECG_HR
[VALOR] => 125
[CRITICO] => 1))
Then I use $diff=array_diff_assoc($c2,$c1);
and I get the results below in array $diff.
Array([1] => Array
([PROCESSO] => 1614436
[DATAMSG] => 2015-04-27 23
[CATEGORIA_DESC] => ECG_HR
[VALOR] => 121
[CRITICO] => 1)
[2] => Array
([PROCESSO] => 1614436
[DATAMSG] => 2015-04-27 23
[CATEGORIA_DESC] => ECG_HR
[VALOR] => 123
[CRITICO] => 1)
[3] => Array
([PROCESSO] => 1614436
[DATAMSG] => 2015-04-27 23
[CATEGORIA_DESC] => ECG_HR
[VALOR] => 125
[CRITICO] => 1))
EDIT: I tried using $diff=array_udiff_assoc($c2,$c1, array("cr", "comp_func_cr"));
with the below function as in php.net example but it's returning the same thing as with array_diff_assoc
.
class cr {
private $priv_member;
function cr($val)
{$this->priv_member = $val;}
static function comp_func_cr($c2, $c1)
{if ($c2->priv_member === $c1->priv_member) return 0;
return ($c2->priv_member > $c1->priv_member)? 1:-1;}}