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

时间:2015-03-28 02:20:49

标签: php arrays

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

我的代码:

<?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的对象无法转换为字符串

我不知道发生了什么。我搜索了几个小时,但在这里找不到任何东西。任何帮助是极大的赞赏。感谢。

1 个答案:

答案 0 :(得分:1)

当你在深度内观察时,你不能在多维数组上使用array_unique。它在平板上工作,当然不会在字符串上工作。另一种方法是为其创建另一个容器并使用用户名作为键,然后您将获得唯一的容器。

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

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