Autor Zpráva
etexweb
Profil
Ako zistiť počet mien v tomto object cez PHP ?
Events Object
(
    [Records] => Array
        (
            [0] => Events Object
                (
                    [Records] => Array
                        (
                        )

                    [ID] => 491741522
                    [UserID] => Petr
                    [SendDate] => 2011-07-20
                    [nazov] => TEXT 1
                    [popis] => ...
                )

            [1] => Events Object
                (
                    [Records] => Array
                        (
                        )

                    [ID] => 491741569
                    [UserID] => Petr
                    [SendDate] => 2011-07-20
                    [nazov] => TEXT 2
                    [popis] => ...
                )
	)
)


Napr. vypísalo by:
1. Petr
2. Petr <-- Peter je tu - 2 x
Skúšal som substr_count() aj array_count_values() ale marne...
ĎAKUJEM ZA KAŽDÚ POMOC! :)
Majkl578
Profil
Procházet takto objekty není zrovna triviální záležitost, o to hůř rekurzivně a na takovém ne zrovna ideálně vypadajícím vzoru, který jsi uvedl.

$prototype = new stdClass;
$prototype->records = array();

$a = new stdClass;
$a->records = array();
$a->UserID = 'Foo';
$prototype->records[] = $a;

$b = new stdClass;
$b->records = array();
$b->UserID = 'Bar';
$prototype->records[] = $b;

$c = new stdClass;
$c->records = array();
$c->UserID = 'Foo';
$b->records[] = $c;

$d = new stdClass;
$d->records = array();
$d->UserID = 'Baz';
$c->records[] = $d;

var_dump($prototype);

$people = array();
$walker = function ($item) use (&$people, &$walker) {
    if ($item->records) {
        array_walk($item->records, $walker);
    }
    
    if (!isset($people[$item->UserID])) {
        $people[$item->UserID] = 1;
    } else {
        $people[$item->UserID] += 1;
    }
};

array_walk($prototype->records, $walker);
var_dump($people);
Na začátku je jakýsi vzorek, na kterém je zbytek testovaný (založené na tom co jsi sem dal). Jména už si vypiš sám, jméno je jako klíč v $people a hodnota je počet nálezů.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0