2017-04-01 41 views
0

我有这个非常困难的数组迭代。我只想要name指数的价值。我试了很多,但不知道如何找到这个。如何在PHP中迭代这个多维数组?

Array ([0] => Array ([created_time] => DateTime Object 
([date] => 2017-04-01 12:58:25.000000 [timezone_type] => 1 [timezone] => 
+00:00) [from] => Array ([name] => Ghulam Mohe Ud Din [id] => 
1242172779233884) [message] => Hi there[id] => 10154774339307663_10154774534942663)) 

下面是我的一些代码的做法:

foreach ($getPostlikes as $key=> $item) {//suppose array is $getPostlikes 


    foreach($item as $i) 
    { 
     echo $i['name']; 
    } 


} 

任何帮助,将不胜感激。由于

+0

这不是一个复杂的阵列。这完全是为自己(和我们?)组织数据的问题。显然,这个名字是'from'值中数组的一部分。你必须考虑到这一点。 –

+0

@KIKOSoftware。这是动态数组。我无法手动改变它。我必须动态迭代它 –

+0

您对我所说的有反应吗?在那种情况下,我不理解它。你的意思是你根本不知道数组的结构? –

回答

1
foreach ($getPostlikes as $key=> $item) {//suppose array is $getPostlikes 
    echo $item['from']['name']; 
} 
+0

谢谢各不相同 –

1

数据:

Array ( 
    [0] => Array ( 
     [created_time] => DateTime Object, 
     (
      [date] => 2017-04-01 12:58:25.000000, 
      [timezone_type] => 1, 
      [timezone] => +00:00), 
     [from] => Array ([name] => Ghulam Mohe Ud Din [id] => 1242172779233884), 
     [message] => Hi there[id] => 10154774339307663_10154774534942663) 
    ) 

这也将消除重复的名称(每个名称将只显示一次)。

$name_list = array(); 
foreach($postGetLikes as $postno => $post) { 
    if(!isset($name_list[$post['from']['name']])) { 
     $name_list[$post['from']['name']] = 0; 
    } 
    $name_list[$post['from']['name']]++; 
} 

foreach($name_list as $name => $count) { 
    echo $name; 
}