2012-01-12 55 views
0

我想回到col1_2,col2_2,col3_2,col4_2,col1_3,col2_3,col3_3,col4_3,col1_4 ...等返回,這樣我可以在其他函數中使用它。如何從兩個for循環在PHP

所以我做了這個樣子。

function _fields($keynum){ 
    for ($r=2; $r<$keynum; $r++){ 
     for($c=1; $c<5; $c++){ 
      $colname="col".$c."_".$r; 
      return $colname.","; 
     } 
    } 
} 

function create(){ 
    if ($this->input->post('keynum')){ 
     $keynum=$this->input->post('keynum'); 
     $output = $this->_fields($keynum); 
     $output=explode(",", $output); 
     $data['output']=$output; 
     ... 
     ... 

但函數_fields()只返回col1_2。 如果我回顯出來而不是返回$ colname。「,」;它回顯出col1_2,col2_2,col3_2,col4_2。但是這不能在函數create()中使用。

我會欣賞你的輸入。 在此先感謝。

回答

2

嘗試像

function _fields($keynum){ 
    $colname = ''; 
    for ($r=2; $r<$keynum; $r++){ 
     for($c=1; $c<5; $c++){ 
      $colname .= "col".$c."_".$r; 
     } 
    } 
    return $colname; 
} 

Here's a live demo

+1

但是他怎麼能爆炸所有的列沒有,是在列名後面加 – Dau 2012-01-12 13:04:23

1

如果你想作爲_fields函數生成使用單獨的列名,你可以使用一個數組,而不是字符串:

function _fields($keynum){ 
    $colname = array(); 
    for ($r=2; $r<$keynum; $r++){ 
     for($c=1; $c<5; $c++){ 
      $colname[] = "col".$c."_".$r; 
     } 
    } 
    return $colname; 
} 

現在你不必explode任何東西在你的create功能:

function create(){ 
    if ($this->input->post('keynum')){ 
     $keynum=$this->input->post('keynum'); 
     $output = $this->_fields($keynum); 
     foreach ($output as $col){ 
      echo $col; 
     } 
     ... 
     ... 
+0

恰恰我的答案,但是你輸入的更快 – 2012-01-12 13:05:40