2017-09-13 5 views
0

私はデータテーブルを持っており、すべての見出しに見出しを設定する必要があります。配列にはすべての見出しが含まれています。すべての繰り返しで配列の値を追加する

これは正しく

$this->table->set_heading("","$name[0]","$name[1]","$name[2]","$name[3]","$name[4]","$name[5]"); 

に動作しますが、私は動的に

$cnt=count(name); 
for($i=0;$i<$cnt;$i++) 
{ 
     //$this->table->set_heading($name[$i],);  
} 

この

+0

を 'ます$ this->卓上> set_heading( ""、$名));' –

答えて

0

呼び出している関数は、配列を受け入れますが、やるの機能のために解決するための任意のソリューションを設定する必要があります以下のテクニックを使用することはできません。

call_user_func_arrayを使用できます。

$args = [""]; 
$cnt = count($name); 
for($i = 0; $i < $cnt; ++$i) 
    $args[] = $name[$i]; 
call_user_func_array([$this->table, 'set_heading'], $args); 

あなたが本当にインデックスのために気にしない場合はループがすなわち、少なすぎるより良いかもしれない:

$args = [""]; 
foreach($name as $arg) 
    $args[] = $arg; 
call_user_func_array([$this->table, 'set_heading'], $args); 

それとも、あなただけの配列をコピーして、上に最初の引数をシフトすることができ配列

$args = $name; 
array_unshift($args, ""); 
call_user_func_array([$this->table, 'set_heading'], $args); 

も二重引用符(すなわち:"$name[0]")でその周囲のあなたの引数に注意してくださいしばらくはちょうどそれらを使用し、技術的に正しく、動作しますが、貧しい形態であり、パフォーマンスを低下させ、ディ直ちに二重引用符を使用しないでください。

0

$ nameが見出し文字列の配列の場合

$name = array("first", "last", "address", "phone"); 

次にあなたがする必要があるすべては代わりにset_headingが配列を受け入れない個々のパラメータを、渡す

$this->table->set_heading($name); 
2

です。だから、あなたがここでより多くの情報を見つけることができます

$this->table->set_heading("", $name); 

にコードを変更することができます:あなたは、単に使用することができますhttps://www.codeigniter.com/user_guide/libraries/table.html

関連する問題