Добавлять значение массива в каждой итерации

У меня есть таблица данных, и мне нужно установить заголовок в каждой итерации. Массив содержит все заголовки.

это работает правильно

 $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

Решение

Вместо передачи отдельных параметров, set_heading принимает массив. Таким образом, вы можете изменить свой код на

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

Вы можете найти больше информации здесь: https://www.codeigniter.com/user_guide/libraries/table.html

2

Другие решения

Вызываемая функция принимает массив, но для функций, которые этого не делают, вы можете использовать описанную ниже технику.

Ты можешь использовать 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");

Тогда все, что вам нужно сделать, это

$this->table->set_heading($name);
0
По вопросам рекламы ammmcru@yandex.ru
Adblock
detector