Here is a dummy example:
$errors = [];
for ($i = 0; $i < 3; $i++) {
$errors[] = [
'id' => $i
];
}
$errors[] = [
'id' => 0
];
for ($i = 3; $i < 5; $i++) {
$errors[] = [
'id' => $i
];
}
var_dump($errors);
echo "<br/>";
var_dump(array_unique($errors, SORT_REGULAR));
The output above is:
array(6) {
[0]=> array(1) { ["id"]=> int(0) }
[1]=> array(1) { ["id"]=> int(1) }
[2]=> array(1) { ["id"]=> int(2) }
[3]=> array(1) { ["id"]=> int(0) }
[4]=> array(1) { ["id"]=> int(3) }
[5]=> array(1) { ["id"]=> int(4) }
}
array(5) {
[0]=> array(1) { ["id"]=> int(0) }
[1]=> array(1) { ["id"]=> int(1) }
[2]=> array(1) { ["id"]=> int(2) }
[4]=> array(1) { ["id"]=> int(3) }
[5]=> array(1) { ["id"]=> int(4) }
}
As you can see, the second case, the index 3 is missing. So when I return this through an API, it is returned as an object with keys, 0,1,2,4,5.
array_unique()does not convert your array into an object.json_encode()when you return the array?