2014-05-08 43 views
0

數我有一個表格數據重命名重複鍵和這樣的數據的數組:PHP:通過給出的foreach

$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]; 
} 

我寫不出真正的代碼,我的第三行是錯誤的,我認爲(如果($ data [0] = $ data [0] +1){$ n =「1」;} else {$ n =「」;}) 所以,我想通過給號碼重命名重複鍵。我的輸出應該是這樣的:

x=1 y1=1 y2=2 y3=2 t1=1 
+0

我找不到解決方案:( – Galatasaray

回答

0

這段代碼有錯誤,你使用=這將分配價值,而不是進行比較。
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]; 
} 
+0

ty和對不起,我改變了我的代碼,我想用$數據[0]編號,它不工作ķ。 – Galatasaray

0
if($data[0]=$data[0]+1){$n="1";}else{$n="";} 

使用==而不是=的if語句

+0

我改變了它,但我不能給號碼重複的鍵。 – Galatasaray

0

嘗試

 $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++; 
}