1.当前遇到 的问题
如果有六个栏位,如果数据库里面有数据就使用数据库里面的记录进行填充。如果没有就使用默认的数据填充!
$target_info = array();
$r1 = array("zh_name"=>"01","zh_pic"=>"../../theme/pic/shop_1.gif","zh_url"=>"1");
$r2 = array("zh_name"=>"02","zh_pic"=>"../../theme/pic/shop_2.gif","zh_url"=>"2");
$r3 = array("zh_name"=>"03","zh_pic"=>"../../theme/pic/shop_3.gif","zh_url"=>"3");
$target_info = array("1"=>$r1,"2"=>$r2,"3"=>$r3);#得到的结果集
echo count($target_info);
foreach ($target_info as $value) {
echo $value['zh_pic'];
}
这个代码其实功能就是相当于下面的
1.从数据库中去查询满足条件的记录。得到了一个类似于这种结构的数组$target_info
2.所以当你用这个数据集去赋给Smarty的时候就能够使用foreach操作了!
$row = $db->fetch_row_array("select zh_name,zh_pic,zh_url from zh_prod where zh_userid = 1 and zh_is_t = '1' and zh_is_d = '0' order by zh_time desc limit 6 ");
这种结构就跟上面的$target_info 是一样的!
数组下标是从0开始的!
$array[]="新值";
比较常用吧。 通过使用这种办法实现数组的追加赋值!
合并两个数组是把一个数组追加到另一个数组中。使用array_merge()函数和array_merge_recursive()函数都可以实现此功能。
1.array_merge()函数
语法如下:
array array_merge (array array1,array array2 [,array...]) ;
在合并时,如果输入的数组中有相同的字符串键名,则后面的值将覆盖前面的值;如果数组包含数字键名,后面的值不会覆盖原来的值,而是附加到后面。
示例:
$shili1 = array ("名字"=>"刘二",20,25,30) ;
$shili2 = array ("m","n","名字"=>"王","立"=>"100",5) ;
$result = array_merge ( $shili1,$shili2 ) ;
print_r ( $result ) ;
3)末尾添加
array_push
也可以直接用$array[]=$var的形式
整理:
$r3 = array("zh_name"=>"03","zh_pic"=>"_3.gif","zh_url"=>"3");
$err = array("0"=>$r3,"1"=>$r3,"2"=>$r3,"3"=>$r3,"4"=>$r3,"5"=>$r3);
比如说当你在select * from table
得到的就是跟$err这种结构类似的数据!
结果集其实就是一个数组。不过这个数组中的每一个记录都是一个关联数组!
类似于$r3这种结构的关联数组!
所以说遍历数组的时候能够这样写
foreach($err as $val){
}
数组如下赋值:
$target_info[] = $row[$i];
这种赋值是追加赋值。其中$row[$i] 结构就是$r3 是一样的!
阅读(778) | 评论(0) | 转发(0) |