php从数据库里得到value的值为"1",请问怎么才能得到相应的option的值,在前台显示。最常用的办法是啥?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php从数据库里得到value的值为"1",请问怎么才能得到相应的option的值,在前台显示。最常用的办法是啥?相关的知识,希望对你有一定的参考价值。
提交表单是这样的。
酒店星级:<select name="star">
<option value="1">一星</option>
<option value="2">二星</option>
<option value="3">三星</option>
<option value="4">四星</option>
<option value="5">五星</option>
</select>
现在提交之后数据库已经存入了vale的值,比如是"1"。。
读取数据库$date['star']=>1,
怎样在显示的是"一星"呢?
echo $array[$date['star'] - 1]; // 这里-1,因为数组是从0开始的。
如果你想是在表格中选可以给每个option后面加上判断。
<option value="1"<?php if ($date['star'] == 1) echo " selected=\"selected\""; ?>>一星</option>
或者你想更好一点的话,下面的代码。
<select name="star">
<?php
$array = array("一星","二星","三星", "四星", "五星");
foreach($array as $key => $value)
?>
<option value="<?php echo ($key + 1);?>"<?php if ($key + 1 == $date['star']) echo " selected=\"selected\""; ?>><?php echo $value; ?></option>
<?php
?>
</select> 参考技术A 设置一个数组,类似这样:
$starts = array(
1=>'一星',
2=>'二星',
3=>'三星',
4=>'四星',
5=>'五星'
)
然后:$the_start = $date['star'];
$show_start = $starts[$the_start ];
就是根据下标去找对应的中文,下标就是数据库读到的值,这样直接echo $show_start;就是显示的 “一星” 了
php二维数组,key的值都一样,value的不一样,怎么合并。
array(3)
[0] => array(2)
["pid"] => string(1) "6"
["title"] => string(24) "/thumb_525d615760eb0.jpg"
[1] => array(2)
["pid"] => string(1) "6"
["title"] => string(24) "/thumb_525d615708f2d.jpg"
[2] => array(2)
["pid"] => string(1) "6"
["title"] => string(24) "/thumb_525d615699a77.jpg"
想搞成的样子是
pid=6
title=/thumb_525d615760eb0.jpg,/thumb_525d615708f2d.jpg,/thumb_525d615699a77.jpg,.......
我的想法是这样的,将原数组遍历合并,将相同pid的项形成一个数组,然后就是将同一pid数组对应的子数组通过字符串函数join进行分隔
*/
$arr = array(array('pid'=>6, 'title'=>'/thumb_525d615760eb0.jpg'),
array('pid'=>6, 'title'=>'/thumb_525d615708f2d.jpg'),
array('pid'=>6, 'title'=>'/thumb_525d615699a77.jpg'),
);
$newarr = $returnarr = array();
foreach($arr as $val)
$newarr[$val['pid']][] = $val['title'];
//输出:$newarr
array (size=1)
6 =>
array (size=3)
0 => string '/thumb_525d615760eb0.jpg' (length=24)
1 => string '/thumb_525d615708f2d.jpg' (length=24)
2 => string '/thumb_525d615699a77.jpg' (length=24)
foreach($newarr as $k=>$v)
$title = join(',', $v);
$returnarr[] = array('pid'=>$k, 'title'=>$title); //如果需要返回一维数组:直 接将$returnarr[]改成$returnarr
var_dump($returnarr);
//输出:
array (size=1)
0 =>
array (size=2)
'pid' => int 6
'title' => string '/thumb_525d615760eb0.jpg,/thumb_525d615708f2d.jpg,/thumb_525d615699a77.jpg' (length=74) 参考技术B
你是想把它合并成一维数组,全部叠加在一起?
就像这个样子:
array(['pid'] => 6,
['title']=> '/thumb_525d615760eb0.jpg,/thumb_525d615708f2d.jpg,/thumb_525d615699a77.jpg'
)
你的第一个值一直是6吗?还是都叠加在一起,变成666?
如果是就一个6的话,可以这样:
<?php$arr = array(3)
[0] => array(2)
["pid"] => string(1) "6"
["title"] => string(24) "/thumb_525d615760eb0.jpg"
[1] => array(2)
["pid"] => string(1) "6"
["title"] => string(24) "/thumb_525d615708f2d.jpg"
[2] => array(2)
["pid"] => string(1) "6"
["title"] => string(24) "/thumb_525d615699a77.jpg"
//以上是你自己的,
//加上我的::
$new_arr = array();
foreach($arr as $key=>$value)
for($i = 0;$i <= count_array($value);$i++)
$new_arr[$i] = .$value[$i];
这个$new_arr数组里面就把数据整合好了
?>本回答被提问者采纳 参考技术C $arr = array(array('pid'=>6,'title'=>'/thumb_...', ...));
$tmp = array();
foreach($arr as $val)
array_push($tmp,$val['title']);
$res = join(',',$tmp);
print_r($res); 参考技术D 遍历2维数组,按照pid=>title生成一个新的1维数组追问
怎么生成
追答...你这完全不懂啊..遍历数组的时候将没个数组的pid提取出来写入一个新数组.$newarray[$pid].=$title;
遍历完你就得到一个新的数组了
我不是单单的要新数组吧?你先看明白我说的,然后按照你说的那么做,你看看差几百万公里,说话还那么牛B烘烘,真是的。
追答..你这样生成的新数组包含的就是你要的数据,each输出一下就是
key = 6
value = /thumb_525d615760eb0.jpg,/thumb_525d615708f2d.jpg,/thumb_525d615699a77.jpg
以上是关于php从数据库里得到value的值为"1",请问怎么才能得到相应的option的值,在前台显示。最常用的办法是啥?的主要内容,如果未能解决你的问题,请参考以下文章
怎么用jquery serialize只获取到value部分的值