php ,遍历数组的一些方法
7232708273 2022-7-26


<?php
//原数组
$arr = array(
        array('id'=>1,'name'=>'阿珠','age'=>18,'sex'=>0),
        array('id'=>2,'name'=>'段誉','age'=>20,'sex'=>1),
        array('id'=>3,'name'=>'王语嫣','age'=>18,'sex'=>0),
        array('id'=>4,'name'=>'阿紫','age'=>19,'sex'=>0),
        array('id'=>5,'name'=>'金庸','age'=>35,'sex'=>1),
        array('id'=>6,'name'=>'扫地僧','age'=>60,'sex'=>1),
        array('id'=>7,'name'=>'鸠摩智','age'=>24,'sex'=>1),
        array('id'=>8,'name'=>'桥风','age'=>22,'sex'=>1),
		array('id'=>9,'name'=>'虚竹','age'=>21,'sex'=>1),
		array('id'=>10,'name'=>'现在看动漫','age'=>21,'sex'=>1),
    );
	//取sex的值
	$sex = array('女' ,' 男');
	echo '<form action="" method="get">';
		echo'<table  border="1" align="center" width="800" >';
		echo'<tr>';
			echo '<td colspan="4">';
			echo'<a href="?order=1"> <input type="button" value="从小到大"></a>';
				echo'  ';
			echo'<a href="?order=2"> <input type="button" value="从大到小"></a>';
			echo'<select name="sex">';
			echo'<option value="xz"> --请选择--</option>';	
			echo'<option value="0">--女--</option>';	
			echo'<option value="1">--男--</option>';
			echo'</select>';
			echo'<input type="submit" value="提交" >';
			echo '</td>';
		
		echo'</tr>';
		echo'<tr>'.
				'<th>  ID  </th>'.
				'<th> 姓名 </th>'.
				'<th> 年龄 </th>'.
				'<th> 性别 </th>'.
		
		    '</tr>'	;
			//获取传参
			$order = $_GET['order']?? null ;
			$xingbie = $_GET['sex']?? 'xz' ;
			$len = count($arr);
			//搜索维持
			$urlos = $osurl= '';
			//冒泡排序的实现
			if($order == 1){
				//var_dump($order);
				for($i = 0 ; $i < $len - 1; $i++ ){
					for($j = 0; $j < $len - $i -1;$j++){
						if($arr[$j]['age'] > $arr[$j + 1]['age']){
							$tmp = $arr[$j];
							$arr[$j] = $arr[$j + 1];
							$arr[$j +1] = $tmp;
						}
							
					}
					
				}
				$osurl = '&order=1';
			}elseif($order==2){
				//var_dump($order);
				for($i = 0; $i < $len -1; $i++ ){
					for($j = 0; $j < $len - $i -1 ; $j++){
						if($arr[$j]['age'] < $arr[$j + 1]["age"]){
							$tmp = $arr[$j];
							$arr[$j] = $arr[$j +1];
							$arr[$j + 1] = $tmp;
						}
					}
				}
			$osurl = '&order=1'	;
			}
				//筛选
			if($xingbie !== 'xz'){
						$arrays = array();
				foreach($arr as $v){
					 if($xingbie == $v['sex']){
					 	$arrays[] = $v;
						
					}
				}
				$urlos =  '&sex='.$xingbie.$osurl ;
				$arr= $arrays;
				echo $urlos;
			}
			
			$page = 3;
			$len = count($arr);	
			//进一取整		
			$pageAll = ceil($len / $page);
			
			$dpage = $_GET['prge'] ?? 1;
			$prepage = $dpage - 1 <= 1 ? 1 :($dpage - 1);
			$nextpage = $dpage + 1 >= $pageAll ? $pageAll : ($dpage + 1);
		//7.处理数据
		 $num = ($dpage - 1) * $page;
		//8.实现分页
		 $arr = array_slice($arr,$num,$page,true);
			//var_dump($arr);
			echo'</br>';
				foreach($arr as $k=>$v){
					echo'<tr>';
					echo'<td>'.$v['id'].'</td>';
					echo'<td>'.$v['name'].'</td>';
					echo'<td>'.$v['age'].'</td>';
					echo'<td>'.$sex[$v['sex']].'</td>';
					echo'</tr>';
				}		
		
			// foreach($arr as $k=>$v){
			// 	$bgcolor = $k % 2 == 1?'#ddd':'';
			// 	echo '<tr align="center" bgcolor="'.$bgcolor.'">';
			// 		echo '<td>'.$v['id'].'</td>';
			// 		echo '<td>'.$v['name'].'</td>';
			// 		echo '<td>'.$v['age'].'</td>';
			// 		echo '<td>'.$sex[$v['sex']].'</td>';
			// 	echo '</tr>';
			// }
			
			//改用foreach遍历
			 
			// for($i = 0 ; $i < $len ; $i ++){			
			// echo	'<td>'. $arr[$i]['id'] . '</td>';
			// echo	'<td>'. $arr[$i]['name'] . '</td>';
			// echo	'<td>'. $arr[$i]['age'] . '</td>';
			// 	switch($arr[$i]['sex']){
			// 		case 0:
			// 		echo '<td>女</td>';
			// 		break;
			// 		default:
			// 		echo '<td>男</td>';
					
			// 	}
			
			echo'<tr>';
			echo'<td colspan="4">';
			echo'<span>一共' . $len. '条'.'(' . $dpage .'/'.$pageAll.')'.'</span>';
			echo'<a href="?prge=1">首页</a>';
			echo'    ';
			echo'<a href="?prge='.$prepage.$urlos.'">上一页</a>';
			echo'    ';
			echo'<a href="?prge='.$nextpage.$urlos.'">下一页</a>';
			echo'    ';
			echo'<a href="?prge='.$pageAll.'">尾页</a>';
			echo'</td>';
			echo'</tr>';
		echo'</table>';	
	echo '</form>';	
?>

最新回复 (5)
全部楼主
  • chen6817
    2022-7-27 2
    0
    6666666666666666666666666
  • xiunoa 超版
    2022-7-29 3
    0
    看不懂,哈哈
  • 7232708273 楼主
    2022-7-29 4
    0
    xiuno 看不懂,哈哈
    我也不是很懂,这是练习的碎片代码
  • JIIoPN
    2022-7-31 5
    0
    楼主,你写得实在是太好了。我惟一能做的,就只有把这个帖子顶上去这件事了。 
  • 17327933349
    2022-7-31 6
    0
    面对如此强贴,论遇到多大阻力,只要我一息上尚存,就绝不会让它沉沦下去,这一点请楼主放心。 
返回