Php 使用Foreach的唯一数组值

Php 使用Foreach的唯一数组值,php,arrays,Php,Arrays,我有这个数组 Array ( [0] => posts Object ( [title] => test1 [dbh] => DataBase Object ( [dbh] => PDO Object ( ) ) ) [1] => pos

我有这个数组

Array 
( 
    [0] => posts Object 
        ( 
            [title] => test1 
            [dbh] => DataBase Object 
                  ( 
                      [dbh] => PDO Object ( ) 
                  ) 
        )

    [1] => posts Object 
        ( 
            [title] => test1 
            [dbh] => DataBase Object 
                  (
                      [dbh] => PDO Object ( ) 
                  ) 
        )

    [2] => posts Object 
        ( 
            [title] => test2 
            [dbh] => DataBase Object 
                  (
                      [dbh] => PDO Object ( ) 
                  ) 
        )
)

我不能使用array_unique(),因为无法将对象转换为字符串。最好的方法是不要使用foreach。您应使用:

for ($i = 0; $i < count($array); $i++) {
  for ($j = $i + 1; $j < count($array); $j++) {
    if ($array[$i] === $array[$j]) {
      unset($array[$j]);
      $array = array_values($array);
    }
  }
}

…用于检查标题是否相同以及
数据库
对象是否属于同一实例。

是的,这是一个可捕获的致命错误:类帖子的对象无法转换为字符串…这是来自数据库吗?如果是,您能否调整查询以避免重复?
if ($array[$i]->title === $array[$j]->title && $array[$i]->dbh === $array[$j]->dbh) {