重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
select *,DATE_FORMAT(add_time,'%Y-%m-%d') as add_date from donku_articles
成都创新互联公司的客户来自各行各业,为了共同目标,我们在工作上密切配合,从创业型小企业到企事业单位,感谢他们对我们的要求,感谢他们从不同领域给我们带来的挑战,让我们激情的团队有机会用头脑与智慧不断的给客户带来惊喜。专业领域包括成都网站建设、网站设计、电商网站开发、微信营销、系统平台开发。
把sql语句改成上面这种,另外最好不要用fetch_row这种索引方式取值,可以用fetch_assoc这种关联的方式,
另外你的这个 貌似在while里面用不到foreach,,smarty引擎我没用过,按理说它的赋值 应该也不用while一个一个赋值,把$smarty-assign('art_recommend_row',$new_result);这个赋值拿到循环外面(smarty没用过,按照thinkphp yii2 这些框架来说 赋值给模板不需要放在循环里面),我按照我的想法把你的改了一下
include('includes/init.php');
$sql="SELECT *,DATE_FORMAT(add_time,'%Y-%m-%d') as add_date FROM `donku_articles`";
$query=$mysql-query($sql);
$result=[];
while($row=$mysql-fetch_assoc($query)){//这里应该是关联的形式,从你的fetch_row我猜是应该是fetch_assoc
$result[]=$row;
}
//下面是赋值给模板
$smarty-assign('art_recommend_row',$result);
json_encode后就是字符串了。
所以不需要什么特别处理,直接入库就可以。
只不过出库后需要json_decode。
你的问题是,出库后没有对json_encode的字段进行json_decode处理。
例如
$result = array('a'='jsonencode后的字符串');
print_r(json_decode($result['a']));
很简单 看下列代码
//$a 为二维数组
$a = array(array('zhangsan'=20),array('zhangsan'=3500),array('lish'=10));
foreach ($a as $key = $value) {
foreach ($value as $k = $v) {
if ($b[$k]) {
$b[$k]=$v+$b[$k];
}else{
$b[$k]=$v;
}
}
}
//$b为合成后的一维数组
var_dump($b);
//array (size=2)
// 'zhangsan' = int 3520
// 'lish' = int 10
//手写请采纳
PHP还是比较常用的,于是我研究了一下PHP二维数组,在这里拿出来和大家分享一下,希望对大家有用使用PHP从数组中取出一段值可使用PHP内置函数array_slice(),但这个函数只支持一维数组,具体使用可查看PHP手册,array_slice函数并不支持二维数组,。首先了解一下array_slice函数:
array array_slice ( array array, int offset [, int length [, bool preserve_keys]] ) array_slice()
返回根据 offset 和 length 参数所指定的 array 数组中的一段序列。
实例:从一维数组中取出一段值
?php $arrayarray = array('b','i','u','u','u'); $result = array_slice($array,0,4); print_r($result); ?
实例从数组$array中取出四个值,起点数组下标0开始,结果如下:从一维数组取出一段值非常简单,直接使有内置函数array_slice 。PHP二维数组的取值同样需要使用array_slice 函数,实例二维数组数据如下:
$arrayarray = array ();
$array [1] = array ('1' = 'b1', '2' = 'i1', '3' = 'u1', '4' = 'u1', '5' = 'u1' );
$array [2] = array ('1' = 'b2', '2' = 'i2', '3' = 'u2', '4' = 'u2', '5' = 'u2' );
$array [3] = array ('1' = 'b3', '2' = 'i3', '3' = 'u3', '4' = 'u3', '5' = 'u3' );
$array [4] = array ('1' = 'b4', '2' = 'i4', '3' = 'u4', '4' = 'u4', '5' = 'u4' );
$array [5] = array ('1' = 'b5', '2' = 'i5', '3' = 'u5', '4' = 'u5', '5' = 'u5' );
$array [6] = array ('1' = 'b6', '2' = 'i6', '3' = 'u6', '4' = 'u6', '5' = 'u6' );
$array [7] = array ('1' = 'b7', '2' = 'i7', '3' = 'u7', '4' = 'u7', '5' = 'u7' );
如上二维数组,如果需要取出其中某段,需要知道取段开始与结束在数组中的位置,考虑到应用的特殊性,只从第一个数组开始,在这个二维数组中取出需要的数组个数。方法如下:
function array_silice_func(array $array, $limit) { $k = $count = 0; $temp = array (); foreach ( $array as $key = $value ) { $countcount = count ( $value ); if ($count + $k = $limit) { $t = array_slice ( $value, 0, $limit - $k ); $temp [$key] = $t; break; } $temp [$key] = $value; $k += $count; } return $temp; }
APC方法实现PHP上传多个文件原理剖析
新手必看PHP上传文件进度全面揭秘
经验之谈PHP数组函数总结
深入学习PHP数组函数使用方法
使用如下:print_r ( array_silice_func ( $array, 5 ) )取出二维数组的5个值,结果如下:Array ( [1] = Array ( [0] = b1 [1] = i1 [2] = u1 [3] = u1 [4] = u1 ) ) 依此类推,取出所需要的数组个数。由于PHP二维数组的使用局限性,这里没有实现从二维数组某个下标开始,取出多少个数组个数的需求,不过这也是值得探讨的地方。以上就关于如何使用PHP从二维数组中取出一段指定值,希望对大家有帮助。