У меня есть небольшая функция ниже, которая принимает ассоциативные массивы, и я изо всех сил пытаюсь найти способ изменить ее, чтобы принимать более простые массивы. Было бы легко создать отдельную функцию и удалить цикл foreach, но я пытаюсь понять, есть ли более эффективный способ достичь этого. Любые идеи были бы весьма полезны.Изменение функции PHP для приема различных типов массивов
Функция:
public function set_content($file, $data, $section_name)
{
$jobs = new Template_Engine();
$jobs->set_file($file);
$jobs_output = '';
static $section_title = 0;
foreach($data as $job)
{
//print_r($job);
foreach($job as $key=>$value)
{
$jobs->set($key,$value);
}
if ($section_title === 0)
{
$jobs->set("section_title",$section_name);
}
else
{
$jobs->clear_set("section_title");
}
++$section_title;
$jobs_output .= $jobs->output();
}
$section_title = 0;
return $jobs_output;
}
массива Пример 1:
Array ([0] => Array ([custom_id] => 78 [name] => Title Goes [description] => Test [resume_id] => 96 [order_id] => 0 [section_id] => 224 [profile_id] => 38 [user_id] => 1 [vanity_name] => Sample of Template 3 [template_id] => 3 [date_add] => 0000-00-00 00:00:00 [date_mod] => 2012-03-04 11:00:05) [1] => Array ([custom_id] => 76 [name] => A Custom Item [description] => A descrition for a custom item goes here. [resume_id] => 96 [order_id] => 1 [section_id] => 224 [profile_id] => 38 [user_id] => 1 [vanity_name] => Sample of Template 3 [template_id] => 3 [date_add] => 0000-00-00 00:00:00 [date_mod] => 2012-03-04 11:00:05))
массива Пример 2:
Array ([list_item] => EnglishSpanishFrenchCatalanJapanese)
не будет [** this **] (http://codeangel.org/articles/simple-php-template-engine.html) быть лучшим способом реализации шаблонов? –
Возможно, http://php.net/manual/en/function.call-user-func-array.php может помочь – Abhay
вы можете использовать 'is_array()', чтобы определить, нужен ли вам второй вложенный цикл или нет. –