2012-11-21 32 views
0

我有以下陣列:PHP:經歷一個非有序索引多維數組

$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。

我做錯了什麼?

謝謝!

回答

0

你有嵌套數組:你需要嵌套循環。

foreach ($users as $ulist) { 
    foreach ($ulist as $u) { 
     echo $u->getName(); 
    } 
} 
0

嘗試

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

ü試圖一圈,但沒有復位$ I

更精確:

陣列通話

0 0 
0 1 
1 2 << does not exist => $u [2] = Null 
1 3