0

私は次の配列を持っています:

$users
: array = 
  0: array = 
    0: object(Person) = 
      strName: string = John
      strLastName: string = Smith
      strAge: string = 19
    1: object(Person) = 
      strName: string = Jean
      strLastName: string = Newton
      strAge: string = 22
  1: array = 
    0: object(Person)= 
      strName: string = John
      strLastName: string = Smith
      strAge: string = 19
    1: object(Person) = 
      strName: string = Jean
      strLastName: string = Newton
      strAge: string = 22
  2: array = 
    0: object(Person) = 
      strName: string = Martin
      strLastName: string = Marin
      strAge: string = 25    

私が行った重複を取り除くために:

$users = array_map("unserialize", array_unique(array_map("serialize", $users)));

そして私は得る:

$users
: array = 
  0: array = 
    0: object(Person) = 
      strName: string = John
      strLastName: string = Smith
      strAge: string = 19  
    1: object(Person) = 
      strName: string = Jean
      strLastName: string = Newton
      strAge: string = 22  
  1: array = 
    0: object(Person) = 
      strName: string = Martin
      strLastName: string = Marin                                                                                                        
      strAge: string = 25   

次に、配列に含まれる情報を取得する必要があります。私がやっている:

$i=0;
foreach ($users as $u)
{
  echo $u [$i]->getName()); 
.
.
  $i++;
 }

しかし、配列のすべての要素を出力しているわけではありません。$u[2]はNULLです。

私は何を間違っているのですか?

トンありがとう!

4

2 に答える 2

0

ネストされた配列があります。ネストされたループが必要です。

foreach ($users as $ulist) {
    foreach ($ulist as $u) {
        echo $u->getName(); 
    }
}
于 2012-11-21T09:53:28.590 に答える
0

試す

$i=0;
foreach ($users as $u)
{
  while ($u [$i] != NULL ){
echo $u [$i]->getName(); 
.
.
  $i++;
}
$i=0
 }

uは円を描くことを試みましたが、$iをリセットしませんでした

より正確な :

配列呼び出し

0 0
0 1
1 2   << does not exist   => $u [2] = Null
1 3
于 2012-11-21T09:54:53.523 に答える