我正在努力在for循环中获得正确的值。
这是我从控制器传递到视图的数据
$data['moisString'] = $moisString;
//result of var_dump
var_dump($data['moisString'] );
array (size=3)
0 => string 'Janvier' (length=7)
1 => string 'Février' (length=8)
2 => string 'Mars' (length=4)
$data['year'] = $year;
//result of var_dump
var_dump($data['year'] );
array (size=3)
0 => int 2014
1 => int 2014
2 => int 2014
在我看来我有一个form_dropdown,我希望得到类似的东西:
****************
* Janvier 2014 *
* Février 2014 *
* Mars 2014 *
****************
这是视图:
echo form_open('suivrePaiement/view', 'method="get"');
$month = array();
$annee = array();
for ($i = 0; $i < count($moisString); $i++) {
$month[] = $moisString[$i];
$annee[]= $year[$i];
foreach ($ficheFrais as $mois) {
$options[$mois->mois] = $month[$i]." ".$annee[$i];
}
}
echo form_dropdown('mois', $options, $this->input->get('mois'), 'class="btn btn-default
dropdown-toggle"');
echo form_hidden('visiteur', set_value('visiteur', $this->input->get('visiteur')));
echo form_submit('', 'Envoyer', 'class="btn btn-info"');
echo form_close();
但这就是我得到的:
*************
* Mars 2014 *
* Mars 2014 *
* Mars 2014 *
*************
有人有解决方案吗?谢谢你的时间!
答案 0 :(得分:0)
你的foreach应该在循环结束后完成。
最后一个循环是3例如..所以所有选项都会得到相同的$i
。因此,您将在代码中覆盖$options
三次。
for ($i = 0; $i < count($moisString); $i++) {
$month[] = $moisString[$i];
$annee[]= $year[$i];
}
$counter = 0;
foreach ($ficheFrais as $mois) {
$options[$mois->mois] = $month[$counter]." ".$annee[$counter++];
}
答案 1 :(得分:0)
使用array_map来清理你的手。
把它放在你的控制器上:
$options = array_map("set_option", $data['moisString], $data['year]);
$data['dropdown'] = form_dropdown('mois', $options, $this->input->get('mois'), 'class="btn btn-default dropdown-toggle"');
并创建一个函数
function set_option($moisString, $year)
{
return $moisString . ' ' . $year;
}
查看此参考php.net
在您的视图中只是回显$ dropdown;