2013-03-14 87 views
0

在下面的循环中,我希望$value[0]在循环的每次通过时递增。所以,如果$count = 2循环将运行两次,并输出$key . " " . $value[0]$key . " " . $value[1]增加一个数组计数器

现在,我的循环两次输出$key . " " . $value[0]。我做错了什么?

$count = count($updates['positionTitle']); 

for($i = 1; $i<=$count; $i++){ 
    foreach($updates as $key => $value){ 
     if(!is_array($value)) 
      echo $key . " " . $value . "<br/>"; 
     else 
      echo $key . " " . $value[0]++ . "<br/>"; 
    } 
} 
+0

'$值[0]'是指在阵列中关键'0'。你需要'$ value [$ i]'。 – Kermit 2013-03-14 20:51:39

+0

@AarolamaBluenk - 对,但这就是我想要的。 – 2013-03-14 20:54:58

+0

您正在增加'$ value',它是$ updates [$ key]的克隆,并且不会直接编辑它。将'$ key => $ value'更改为'$ key =>&$ value'或将'$ value [0] ++'更改为'$ updates [$ key] ++'。 – Ultimater 2013-03-14 21:50:46

回答

1

您需要存储当前索引是什么。我不确定你在说什么循环。我假设它是循环的外部。我仍然认为这是打破了,但根据您的意见,这是你想要的。

$count = count($updates['positionTitle']); 
$idx = 0; 

for($i = 1; $i<=$count; $i++){ 
    foreach($updates as $key => $value){ 
     if(!is_array($value)) 
      echo $key . " " . $value . "<br/>"; 
     else 
      echo $key . " " . $value[$idx] . "<br/>"; 
    } 
    $idx++; 
} 
+0

谢谢,这有帮助! – 2013-03-14 20:59:18

0

变化:

foreach($updates as $key => $value){ 

到:

foreach($updates as $key => &$value){