我在我的应用程序中使用数组作为状态
$status =array("New lead", "Email reply", "Phone reply" ,"In conversation", "Invoice generated", "Full payment", "Partial payment", "Decline");
并使用foreach
循环生成HTML
,下面是代码。
foreach ($status as $value){
$selected = (int)$posts->status == key($status) ? "selected" : "";
echo '<option value="'.key($status).'" '.$selected .'>'.$value.'</option>';
}
我得到的输出是
<option value="1">New lead</option>
<option value="2">Email reply</option>
<option value="3">Phone reply</option>
<option value="4">In conversation</option>
<option value="5" selected="">Invoice generated</option>
<option value="6">Full payment</option>
<option value="7">Partial payment</option>
<option value="">Decline</option>
我没有获得拒绝状态的最后key
。需要你的帮助。
答案 0 :(得分:3)
此代码必须正常工作:
foreach ($status as $key => $value){
$selected = $posts->status == $key ? "selected='selected'" : "";
echo '<option value="'. $key.'" '.$selected .'>'.$value.'</option>';
}
如果你想使用键功能,你必须使用带有当前的while循环:
while ($value = current($status)) {
$selected = (int)$posts->status == key($status) ? "selected" : "";
echo '<option value="'.key($status).'" '.$selected .'>'.$value.'</option>';
next($status);
}
阅读此php参考:http://php.net/manual/en/function.key.php
结果:
<option value="0" selected>New lead</option>
<option value="1" >Email reply</option>
<option value="2" >Phone reply</option>
<option value="3" >In conversation</option>
<option value="4" >Invoice generated</option>
<option value="5" >Full payment</option>
<option value="6" >Partial payment</option>
<option value="7" >Decline</option>
答案 1 :(得分:1)
foreach ($status as $key => $value){
$selected = (int)$posts->status == key($status) ? "selected" : "";
echo '<option value="'.$key.'" '.$selected .'>'.$value.'</option>';
}
这有用吗?
答案 2 :(得分:0)
问题是,$ status数组的指针已经移动到下一个项目,所以不是获取$ value的键,而是获取数组中下一个值的键。更多细节:
答案 3 :(得分:-1)
is all 4 object auto delete?
is all 4 object reference auto delete?
数组第一个值键为0,因为数组索引始终为0