2017-09-13 3 views
0

Ich habe Datentabelle und ich muss die Überschrift in jeder Iteration festlegen.Das Array enthält alle Überschriften.Anfügen Array-Wert in jeder Iteration

dies funktioniert

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

Aber ich brauche dynamisch

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

Jede Lösung, um festzulegen, zu lösen dieses

+0

Sie einfach verwenden können, '$ this-> Tabellen-> set_heading ("", $ name));' –

Antwort

0

Die Funktion, die Sie anrufen, ein Array akzeptiert, aber für Funktionen, die tun Sie können die folgende Technik nicht verwenden.

Sie können call_user_func_array verwenden.

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

Die Schleife zu etwas besser sein könnte, wenn Sie für den Index nicht wirklich egal, das heißt:

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

Oder Sie nur das Array kopieren konnte, und das erste Argument auf die Verschiebung

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

Bitte beachten sie auch, dass rund um Ihre Argumente in doppelte Anführungszeichen (zB: "$name[0]") zwar technisch korrekt ist und funktioniert, ist eine schlechte Form und Leistung senkt, so dass sie nur verwenden, di direkt ohne die Anführungszeichen.

0

wenn $ name ein Array von heading strings ist, z.

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

Dann alles, was Sie tun müssen, ist

$this->table->set_heading($name); 
Verwandte Themen