php二維數組循環
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);
}
}
?>