0

オブジェクトの配列があります。

必要なのは[name]、各オブジェクトを別の配列に配置することですが、重複は必要ありません。

どうすればいいですか?

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
        )
)

ありがとう!

4

5 に答える 5

5

あなたはこれを行うことができます:

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

定義上、配列キーは一意でなければならないため、これは機能します。

于 2012-11-27T18:17:54.320 に答える
3

どうぞ

$res = array();

foreach($arr as $var)
{
    if(!in_array($var->name, $res))
    {
      $res[] = $var->name;
    }
}
于 2012-11-27T18:17:10.067 に答える
3
array_unique(array_map(function($element) {
    return $element->name;
}, $my_array));
于 2012-11-27T18:17:08.517 に答える
2

まず、名前を新しい配列にコピーします。

$arrNames = array();

foreach($arrOriginal as $objObject) {
    array_push(
        $arrNames,
        $objObject->name
    );
}

次に、重複する名前を削除します。

$arrNames = array_unique($arrNames);
于 2012-11-27T18:16:51.223 に答える
0
$n = array();

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

$n = array_unique($n);
于 2012-11-27T18:28:04.010 に答える