1

我有一个表单数据和数据的数组,如下所示:

$datas=array("x-1","y-2","y-2","y-3","t-1");

我的 foreach 循环:

    foreach($datas as $x => $data){
    $data=explode("-",$data);
    if($data[0]==$data[0]+1){$n=1;}else{$n=0;}
    $keys[$x]=$data[0].$n++;
    $vals[$x]=$data[1];
}

我无法编写真正的代码,我认为我的第三行是错误的 (if($data[0]=$data[0]+1){$n="1";}else{$n=""; }) 所以,我想通过给出数字来重命名重复的键。我的输出应该是这样的:

x=1 y1=1    y2=2    y3=2    t1=1
4

3 回答 3

1

尝试

     $datas=array("x-1","y-2","y-2","y-3","t-1");

     $i=0;
     $n=1;
     foreach($datas as $x => $data){
     $data=explode("-",$data);
     $data2=explode("-",$datas[$i+1]);
     if($data[0]==$data2[0])
      {  
      $keys[$x]=$data[0].$n; 
      $n=$n+1;
      }
      else
     {
     $keys[$x]=$data[0].$n; 
     $n=0;
     }

       $vals[$x]=$data[1];
    $i++;
 }
于 2014-05-08T12:15:05.927 回答
0

此代码有您使用的错误,=它将分配 value ,而不是比较它。
n应该是整数而不是字符串
来解决这个问题

  foreach($datas as $x => $data){
    $data=explode("-",$data);
    if($keys[$x]==$keys[$x+1]){$n=1;}else{$n=0;}
    $keys[$x]=$data[0].$n++;
    $vals[$x]=$data[1];
}
于 2014-05-08T11:54:17.353 回答
0
if($data[0]=$data[0]+1){$n="1";}else{$n="";}

对 if 语句使用 == 而不是 =

于 2014-05-08T11:55:03.443 回答