php二维数组排序

要求:按照每一列中最大元素重新排序。比如原来是
1    2     3
4    5      6
7     8      9
排序过后就是
3   2   1
6   5   4
9   8   7
按照9 8 7 顺序重新排列了数组。

txt文件内容如下
5 6
12 2 3 58 8 5
15 5 59 5 52 4
41 14 5 2 2 1
1 40 2 1 12 8
1 1 1 1 1 1
实现代码如下:
<?php
$r=0;
$l=0;
$arr=array();
$file=fopen(“input.txt”,”r”);
$rl=fgets($file);
list($r,$l)=explode(‘ ‘,$rl);//先读取行数和列数
for($i=0;$i<$r;$i++)//每次读取一行,然后分隔存入数组中
{$rl=fgets($file);
array_push($arr,explode(‘ ‘,$rl));
}
fclose($file);
echo “总共有”.sizeof($arr).”行,”. sizeof($arr[0]).”列<br />”;
echo “二维数组内元素排序前为:<br />”;

for($i=0;$i<$r;$i++)
{
 for($j=0;$j<$l;$j++)
 {
  echo $arr[$i][$j].” “;
 }
 echo “<br />”;
}

//开始排序,要求是按照列中最大元素排序

function  GetMax($arr1)//获取数组中最大元素的y坐标
{
 $max=intval($arr1[0][0]);
 $y=0;
 for($i=0;$i<sizeof($arr1);$i++)
 {
  for($j=0;$j<sizeof($arr1[0]);$j++)
  {
   //if(intval($arr1[$i][$j])>$max)//这里的intval不能去掉,去掉有错
   if(intval($arr1[$i][$j])>$max)
   {
    $max=$arr1[$i][$j];
    $y=intval($j);
   }
  } 
 }
 return intval($y);
 
}

$newarr=array(array());
for($i=0;$i<$l;$i++){
 $a=GetMax($arr);
 for($j=0;$j<$r;$j++)
 { 
   $newarr[$j][$i]=$arr[$j][$a];
   $arr[$j][$a]=0;
 }
}
echo “排序过后是:<br />”;
for($i=0;$i<$r;$i++)
{
 for($j=0;$j<$l;$j++)
 {
  echo $newarr[$i][$j].” “;
 }
 echo “<br />”;
}
?>

php+ftp

$ftp_server = “122.207.221.101”;//主机ip或者域名

$conn_id = ftp_connect($ftp_server) or die(“Couldn’t connect to $ftp_server”);

 ftp_login($conn_id,”liyang”,”liyang”)or die(“登陆失败,请核对用户名和密码”);

 echo “当前目录:”.ftp_pwd($conn_id)”;

ftp_chdir($conn_id,”test/joyous”); //更改目录到test/joyous目录下

echo “当前目录:”.ftp_pwd($conn_id);

 echo “新建文件夹:”.ftp_mkdir($conn_id,”test1″);

ftp_nb_put($conn_id,”test.txt”,”test.txt”,FTP_ASCII);

//上传文件到ftp服务器,首先要确定text.txt文件在当前php运行的同一个目录内

print_r(ftp_nlist($conn_id,”test”));//打印出test文件夹下文件

ftp_close($conn_id);

基本功能可以扩展,这只是仅供参考。