Php 分裂阵列

Php 分裂阵列,php,arrays,Php,Arrays,我有一个对象数组 我需要的是将每个对象的每个[名称]放入另一个数组中,但我不希望重复 我怎么做 Array ( [0] => ADOFetchObj Object ( [name] => Team 1 [att] => None [idGrupo] => 1 [idModulo] => 4 [ler] => 1

我有一个对象数组

我需要的是将每个对象的每个[名称]放入另一个数组中,但我不希望重复

我怎么做

Array (
    [0] => ADOFetchObj Object
        (
            [name] => Team 1
            [att] => None
            [idGrupo] => 1
            [idModulo] => 4
            [ler] => 1
            [escrever] => 1
            [excluir] => 1
        )

    [1] => ADOFetchObj Object
        (
            [name] => Team 1
            [nomeModulo] => Aplicar Juros
            [idGrupo] => 1
            [idModulo] => 1006
            [ler] => 1
            [escrever] => 1
            [excluir] => 1
        )

    [2] => ADOFetchObj Object
        (
            [name] => Team 2
            [att] => None
            [idGrupo] => 1
            [idModulo] => 10
            [ler] => 1
            [escrever] => 1
            [excluir] => 1
        )

    [3] => ADOFetchObj Object
        (
            [name] => Team 2
            [att] => None
            [idGrupo] => 1
            [idModulo] => 1012
            [ler] => 1
            [escrever] => 1
            [excluir] => 1
        )
)

谢谢

首先,将名称复制到新数组:

$arrNames = array();

foreach($arrOriginal as $objObject) {
    array_push(
        $arrNames,
        $objObject->name
    );
}
然后删除重复的名称:

$arrNames = array_unique($arrNames);
好了

$res = array();

foreach($arr as $var)
{
    if(!in_array($var->name, $res))
    {
      $res[] = $var->name;
    }
}
您可以这样做:

$names = array();
foreach($arr as $list) {
    $names[$list->name] = true; // can be *any* arbitrary value
}
$names = array_keys($names);

这将起作用,因为根据定义,数组键必须是唯一的。

我不明白。当你有两个相同的名字时会发生什么?你怎么知道该选择哪个呢?我想把上面这个数组的每一个[name]都放到另一个数组中,但不要重复。明白了吗?@PédeLeão嗯。。。它们是一样的,那又有什么关系呢?@RocketHazmat记录对象的内部占位符。由ADORecordSet->FetchObj使用。@LucasVeiga:这是一个对象数组,不是数组数组。$var是一个对象,不是数组。有人在回答这个问题之前正确地阅读了这个问题吗?更正了,描述有误导性:我有一个数组在另一个数组中。简直太棒了!非常感谢!没问题@LucasVeiga乐意帮忙^ ^这可能是最有效的方法。@netcoder是的。。。我不理解其他答案中的所有if语句和array_unique。。。它们增加了太多的开销:-PWell这一款绝对是最优雅的,但对于初学者来说并不容易理解+就我而言,这是唯一值得一看的答案。标准库解决了这个问题,而不需要循环。
$n = array();

foreach($array as $d) $n[] = $d->name;

$n = array_unique($n);
$n = array();

foreach($array as $d) $n[] = $d->name;

$n = array_unique($n);