PHP数组在多维数组/对象上是唯一的


PHP array unique on multi dimensional array/object

我已经尝试了一段时间。我已经尝试了几种方法来解决这个问题,但我就是无法让它发挥作用。

我的代码:

<?php
if (is_array($row))
{
    foreach ($row as $data) {
        echo array_unique($data->username);
    } 
}
?>

它给了我以下错误

消息:array_unique()要求参数1为数组,字符串给定

我不知道这是怎么回事。我甚至尝试过将array_unique放置在$row中。

就像:

<?php
if (is_array($row))
{
    foreach (array_unique($row) as $data) {
        echo $data->username;
    } 
}
?>

但这给了我另一个错误:

类stdClass的对象无法转换为字符串

我不知道发生了什么事。我找了好几个小时了,但在这里什么都没找到。非常感谢您的帮助。谢谢

当您查看深度内部时,不能在多维数组上使用array_unique。它适用于平面,当然不会适用于弦。另一种选择是为其创建另一个容器,并使用用户名作为密钥,然后您将获得唯一的用户名。

由于您还没有显示数组/对象结构,这里有一点关于我上面给出的评论的想法:

$container = array();
foreach($row as $data) {
    if(!isset($container[$data->username])) {
        $container[$data->username] = $data;
    }
}
// $container = array_values($container); // optional simple reindex