2010-09-19 117 views
1

有人可以帮助我访问这个数组,请问我索引有问题。PHP:访问数组变量

array(10) { 
    [0]=>array(2) { 
     ["t"]=>array(1) { 
      ["tag"]=>string(3) "php" 
     } 
     [0]=>array(1) { 
      ["NumOccurrances"]=>string(1) "2" 
     } 
    } 
    [1]=>array(2) { 
     ["t"]=>array(1) { 
      ["tag"]=>string(6) "Tomcat" 
     } 
     [0]=>array(1) { 
      ["NumOccurrances"]=>string(1) "1" 
     } 
    } 
} 

我想用它在foreach循环显示像 “PHP×2” 但我有与索引麻烦

感谢

Jonesy

回答

4

foreach($array as $entity) 
{ 
    echo $entity['t']['tag'] . ' x ' . $entity[0]['NumOccurrances']; 
} 

会工作。

3
foreach ($array as $key => $value){ 
    echo $value['t']['tag'] . " x " . $value[0]['NumOccurrances']; 
} 
+0

-1是这个PHP?应该是'foreach($ array作为$ value){...}'。 – NikiC 2010-09-19 17:32:51

+0

修正了,对于混淆,最近Python太多了...... – fredley 2010-09-19 17:34:20

1

这是干吗?

foreach ($tags as $t) { 
    echo $t['t']['tag'].' x '.$t[0]['NumOccurrances'].'<br />'; 
} 

该结构看起来有点奇怪。如果这没有帮助,请提供数组的其余部分。

+0

谢谢!是的,你是对的,这是一个奇怪的结构,但它是从cakePHP方法看起来像这样:\t \t $ this-> set('tags',$ this-> Project-> query('SELECT t.tag,COUNT *)AS NumOccurrances FROM projects_tags pt INNER JOIN标记t ON t.id = pt.tag_id GROUP BY t.tag ORDER BY 2 DESC')); – iamjonesy 2010-09-19 17:25:32

1
foreach($a as $item) { 
    echo $item['t']['tag'] . 'x' . $item[0]['NumOccurrances'] . '<br>'; 
} 
1

我不会在这里使用foreach循环。 foreach创建数组的副本,因此效率不如for循环。由于您的第一个维度是数字索引,我会做到以下几点:

$count = count($array); 
for ($i = 0; $i < $count; ++$i){ 
    echo $array[$i]['t']['tag'] . " x " . $array[$i][0]['NumOccurrances']; 
} 

我同意瓦西利斯的阵列结构是奇数。