2012-01-12 2 views
0

col1_2、col2_2、col3_2、col4_2、col1_3、col2_3、col3_3、col4_3、col1_4 ...などを返したいので、他の関数で使うことができます。2つのfor-loopsから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のみを返します。 return $ colnameの代わりにエコーアウトした場合。 "、"; col1_2、col2_2、col3_2、col4_2をエコーアウトします。しかし、これはcreate()関数では使用できません。

あなたのご意見をお待ちしております。 ありがとうございます。あなたは_fields機能で生成されたとして、あなたの代わりに文字列の配列を使用することができ、個々の列名を使用する場合は

答えて

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

1

のようなものを試してください:

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

createの機能には、explodeのものはありません。

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

正確に私の答えは、 –

関連する問題