php 数据库中的数组用array 为什么不能读取出来!
例如数据库中的数据:"3"=>"1","2"=>"1","1"=>"1"
循环读取只能读取一组数据,怎么才能一条条循环出来!
请详细点,谢谢
晕 我的意思是一个字段里有 :"3"=>"1","2"=>"1","1"=>"1"
我要从数据库以array数组 循环读取 这一个字段!
$arr2 = array($arr[h_ylid]);
foreach($arr2 as $key=>$value){
echo $key."<br>";
}
这样的 但是它把整条读取出来了
php 数据库中的数组用array 为什么不能读取出来!
答案:3 悬赏:70 手机版
解决时间 2021-01-03 14:50
- 提问者网友:十年饮冰
- 2021-01-03 10:14
最佳答案
- 五星知识达人网友:慢性怪人
- 2021-01-03 10:46
你如果用的是mysql
例:
mysql_connect("localhost","用户名","密码") or die("连接数据库失败");//连接数据库
mysql_select_db("数据库名") or die("选择数据库出错,可能没有权限或不存在的数据库");//选择数据库
$result=mysql_query("select * from 表名 where 1");//取得数据库中符合条件的结果集
while($row=mysql_fetch_array($result)){//遍历结果集
for($i=0;$i<count($row);$i++){
echo $row[$i];//这里的$i也可以用字段名来取得,就不需要for循环了,例如有三个字段,分别为a,b,c。输出时用$row['a'],$row['b'],$row['c']
}
}
你直接取出来,他只是一个值,并不是一个数组
你得对取出来的值只是一个字符串
想要得到你要的结果,你得对这个串再进行操作
例如:
<?
$a='"3"=>"a","2"=>"b","1"=>"c"';
$a=explode(",",$a);
for($i=0;$i<count($a);$i++){
$b=explode("=>",$a[$i]);
$c[$b[0]]=$b[1];
}
echo "<pre>";
print_r($c);
echo "/<pre>";
?>
或者你直接存数据的时候用serialize()
取完后再unserialize()
例:
mysql_connect("localhost","用户名","密码") or die("连接数据库失败");//连接数据库
mysql_select_db("数据库名") or die("选择数据库出错,可能没有权限或不存在的数据库");//选择数据库
$result=mysql_query("select * from 表名 where 1");//取得数据库中符合条件的结果集
while($row=mysql_fetch_array($result)){//遍历结果集
for($i=0;$i<count($row);$i++){
echo $row[$i];//这里的$i也可以用字段名来取得,就不需要for循环了,例如有三个字段,分别为a,b,c。输出时用$row['a'],$row['b'],$row['c']
}
}
你直接取出来,他只是一个值,并不是一个数组
你得对取出来的值只是一个字符串
想要得到你要的结果,你得对这个串再进行操作
例如:
<?
$a='"3"=>"a","2"=>"b","1"=>"c"';
$a=explode(",",$a);
for($i=0;$i<count($a);$i++){
$b=explode("=>",$a[$i]);
$c[$b[0]]=$b[1];
}
echo "<pre>";
print_r($c);
echo "/<pre>";
?>
或者你直接存数据的时候用serialize()
取完后再unserialize()
全部回答
- 1楼网友:逃夭
- 2021-01-03 12:35
"3"=>"1","2"=>"1","1"=>"1"
你是意思就是说,一个字段读出来就是这样的, "3"=>"1","2"=>"1","1"=>"1"并且这个是一行字符串是吗?
这样的话,你可以用explode
$arr2 = explode($arr[h_ylid]);
foreach($arr2 as $key=>$value){
echo $key."<br>";
}
这样你试试
- 2楼网友:老鼠爱大米
- 2021-01-03 12:05
要使用eval来处理。不用搞得太复杂了。
========================
$test = '"3"=>"1","2"=>"1","1"=>"1"';
eval("\$test=array($test);");
print_r($test);
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯