1. php怎样数据库行循环生成二维数组并替换其中的值再生成新的二维数组
include('includes/init.php');
$sql="SELECT*,DATE_FORMAT(add_time,'%Y-%m-%d')asadd_dateFROM`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);
2. php中遍历二维数组的几种方式
?php
//使用for循环遍历
$arr2=array(array("张三","20","男"),array("李四","25","男"),array("王五","19","女"),array("赵六","25","女"));
echo"<tableborder=2bordercolor=red><tr><td>姓名</td><td>年龄</td><td>性别</td></tr>";
for($i=0;$i<4;$i++){
echo"<tr>";
for($j=0;$j<3;$j++){
echo"<td>";
echo$arr2[$i][$j];
echo"</td>";
}
echo"</tr>";
echo"<br>";
}
echo"</table>";
?>
//使用foreach遍历
<?php
$arr=array('one'=>array('name'=>'张三','age'=>'23','sex'=>'男'),
'two'=>array('name'=>'李四','age'=>'43','sex'=>'女'),
'three'=>array('name'=>'王五','age'=>'32','sex'=>'男'),
'four'=>array('name'=>'赵六','age'=>'12','sex'=>'女'));
foreach($arras$k=>$val){
echo$val['name'].$val['age'].$val['sex']."<br>";
}
echo"<p>";
?>
<?php
$arr=array('one'=>array('name'=>'张三','age'=>'23','sex'=>'男'),
'two'=>array('name'=>'李四','age'=>'43','sex'=>'女'),
'three'=>array('name'=>'王五','age'=>'32','sex'=>'男'),
'four'=>array('name'=>'赵六','age'=>'12','sex'=>'女'));
foreach($arras$key=>$value){
foreach($valueas$key2=>$value2){
echo$value2;
}
echo"<br>";
}
?>
3. php 定义二维数组 并循环箱二维数组赋值 不知道我这样写程序对不对 请高人指点
你例子中的代码我并没有看出有什么需要二维数组的地方,两个一维数组就行了啊。我写给你看一下
$szx=array();
$szy=array();
$sql="selectx,yfromdata";
$res=mysql_query($sql);
while($row=mysql_fetch_array($res)){
$szx[]=$row['x'];
$szy[]=$row['y'];
}
$arrxjs=json_encode($szx);
$arryjs=json_encode($szy);
至于你的代码的问题如下
$sql6="select x,y from data ;"; 里面最好不要有分号, $sql6 = "select x,y from data";就行了
mysql_query($sql6); 你写成了mysql_query($res6)
$szx[i][] 应该修改为 $szx[$i][];
array_push($szx[$i], '值') 和 $szx[$i][] = '值' 是等价的,因此你连用它们会导致$szx变成三维数组,正确为array_push($szx[$i], $row['x'])或者$szx[$i][] = $row['x'];
$arrxjs和$arryjs只要在while循环外执行一次就行了
for循环没什么意义吧,我没看到你使用$j啊。或者你贴的代码不全
4. PHP二维数组遍历问题
$res=array();
$t=array('123332','123333');
foreach($aryas$v){
foreach($tas$m){
$res[$t][]=$v[$m];
}
}
print_r($res);
这样应该可以满足你的要求。
一般来说多维数组遍历的话,多个foreach嵌套使用。
多年以后,重看这个代码,发现一些问题,重复发一下吧!
$ary=[
['123332'=>123332,'123333'=>123333,],
['123332'=>'HockeyStick','123333'=>'HockeyStick2',],
['123332'=>33.25,'123333'=>33.25,],
['123332'=>10,'123333'=>10,],
['123332'=>33.25,'123333'=>33.25,],
['123332'=>1,'123333'=>1,],
['123332'=>'AAAA6','123333'=>'AAAA6',],
];
$res=[];
$t=['123332','123333',];
foreach($aryas$v){
foreach($tas$m){
$res[$m][]=$v[intval($m)];
}
}
print_r($res);
运行结果:
Array
(
[123332]=>Array
(
[0]=>123332
[1]=>HockeyStick
[2]=>33.25
[3]=>10
[4]=>33.25
[5]=>1
[6]=>AAAA6
)
[123333]=>Array
(
[0]=>123333
[1]=>HockeyStick2
[2]=>33.25
[3]=>10
[4]=>33.25
[5]=>1
[6]=>AAAA6
)
)
5. php循环的二维数组如何排序
$num=$arr[$a]-18按$num排序其实就是按$arr[$a]来排,只需在循环前对$arr排序就行了。出来的结果自然是按 $num排序
<?php
$arr=array(30,15,40,38);
rsort($arr);
for($a=0; $a<4; $a++){
$num=$arr[$a]-18;
if($num>0){
$arr_1=array(array("$arr[$a]","$num"));
$num_1 = array();
foreach ($arr_1 as $arr_2) {
$num_1[] = $arr_2[1];
}
array_multisort( $num_1,SORT_DESC , $arr_1);
print_r($arr_1);
}
}
?>