2012-11-21 30 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