简体   繁体   English

分割阵列

[英]Splitting Array

I have an array of objects. 我有一个对象数组。

What I need is to take each [name] of each object in put into another array, but I don't want duplicates. 我需要将每个对象的每个[name]放入另一个数组中,但我不希望重复。

How can I do it? 我该怎么做?

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

Thanks! 谢谢!

You can do this: 你可以这样做:

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

This will work because by definition array keys have to be unique. 这将起作用,因为根据定义,数组键必须是唯一的。

array_unique(array_map(function($element) {
    return $element->name;
}, $my_array));

There you go 你去

$res = array();

foreach($arr as $var)
{
    if(!in_array($var->name, $res))
    {
      $res[] = $var->name;
    }
}

First, copy the names to a new array: 首先,将名称复制到新数组:

$arrNames = array();

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

Then remove the duplicate names: 然后删除重复的名称:

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

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

$n = array_unique($n);

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM