I use the line of code below to loop through a table in my database:
$items_thread = $connection -> fetch_all($sql);
And if I print the array out:
print_r($items_thread);
I will get this:
Array
(
[0] => Array
(
[RecipientID] => 3
[RecipientScreenname] => Tom L
[RecipientFirstname] => Thomas
[RecipientEmail] => [email protected]
)
[1] => Array
(
[RecipientID] => 3
[RecipientScreenname] => Tom L
[RecipientFirstname] => Thomas
[RecipientEmail] => [email protected]
)
[2] => Array
(
[RecipientID] => 1
[RecipientScreenname] => Lau T
[RecipientFirstname] => TK
[RecipientEmail] => [email protected]
)
)
But I want to get rid of the duplicate items in the array, so I use array_unique
print_r(array_unique($items_thread));
I get the weird result below which is not quite I am looking for:
Array
(
[0] => Array
(
[RecipientID] => 3
[RecipientScreenname] => Tom L
[RecipientFirstname] => Thomas
[RecipientEmail] => [email protected]
)
)
Ideally, I think it should return this:
Array
(
[0] => Array
(
[RecipientID] => 3
[RecipientScreenname] => Tom L
[RecipientFirstname] => Thomas
[RecipientEmail] => [email protected]
)
[1] => Array
(
[RecipientID] => 1
[RecipientScreenname] => Lau T
[RecipientFirstname] => TK
[RecipientEmail] => [email protected]
)
)
What shall I do to get it right? Have I used the wrong PHP syntax/default function?
The array_unique
function will do this for you. You just needed to add the SORT_REGULAR
flag:
$items_thread = array_unique($items_thread, SORT_REGULAR);
However, as bren suggests, you should do this in SQL if possible.