Blogger Information
Blog 22
fans 0
comment 2
visits 10462
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
常用字符串函数---2018年-8月-27日
Jerry-wang的博客
Original
588 people have browsed it

一.数组的的排序

    自然排序

实例

echo '<pre>';
//根据数组的值进行排序
//1. 升序
$arr = [45,90,22,10,3,18,33];
sort($arr); // 自然排序
echo var_export($arr),'<hr>';
//输出结果
array (
  0 => 3,
  1 => 10,
  2 => 18,
  3 => 22,
  4 => 33,
  5 => 45,
  6 => 90,
)

运行实例 »

点击 "运行实例" 按钮查看在线实例

降序

实例

//2. 降序
$arr = [45,90,22,10,3,18,33];
rsort($arr);
echo var_export($arr),'<hr>';
//输出结果
array (
  0 => 90,
  1 => 45,
  2 => 33,
  3 => 22,
  4 => 18,
  5 => 10,
  6 => 3,
)

运行实例 »

点击 "运行实例" 按钮查看在线实例

3.usort($arr,function(){})回调函数

实例

echo '<pre>';
//根据数组的值进行排序
$arr = [45,90,22,10,3,18,33];
usort($arr, function($var1, $var2){
    $res = $var1 - $var2;
    switch ($res) {
        case ($res < 0):
//            return -1;
            return 1;  // 降序
            break;
        case ($res > 0):
//            return 1;
            return -1; // 降序
            break;
        case ($res == 0):
            return 0;
            break;
    }
});
echo var_export($arr),'<hr>';
//输出结果
array (
  0 => 90,
  1 => 45,
  2 => 33,
  3 => 22,
  4 => 18,
  5 => 10,
  6 => 3,
)

运行实例 »

点击 "运行实例" 按钮查看在线实例

二:多维数组的排序

    usort()多维数组的排序

实例

$stu = [
  ['name'=>'林心如','grade'=>98],
  ['name'=>'范冰冰','grade'=>55],
  ['name'=>'左小青','grade'=>73],
];
echo '排序之前:',var_export($stu,true),'<hr>';
//用户自定义排序规则
usort($stu, function ($m, $n) {
    //$m ,$n实际上还是一个数组
   return strcmp($m['grade'], $n['grade']);
});
echo '排序之后:',var_export($stu,true),'<hr>';

//输出结果是
排序之前:array ( 0 => array ( 'name' => '林心如', 'grade' => 98, ), 1 => array ( 'name' => '范冰冰', 'grade' => 55, ), 2 => array ( 'name' => '左小青', 'grade' => 73, ), )
排序之后:array ( 0 => array ( 'name' => '范冰冰', 'grade' => 55, ), 1 => array ( 'name' => '左小青', 'grade' => 73, ), 2 => array ( 'name' => '林心如', 'grade' => 98, ), )

运行实例 »

点击 "运行实例" 按钮查看在线实例


实例

//根据数组的键进行排序
$lang = ['html'=>'标记语言','css'=>'样式表','javascript'=>'前端脚本','php'=>'后端脚本'];
ksort($lang);//键的升序
echo var_export($lang),'<hr>';

$lang = ['html'=>'标记语言','css'=>'样式表','javascript'=>'前端脚本','php'=>'后端脚本'];
krsort($lang);//键的反序
echo var_export($lang),'<hr>';

//输出结果
array ( 'css' => '样式表', 'html' => '标记语言', 'javascript' => '前端脚本', 'php' => '后端脚本', )
array ( 'php' => '后端脚本', 'javascript' => '前端脚本', 'html' => '标记语言', 'css' => '样式表', )

运行实例 »

点击 "运行实例" 按钮查看在线实例

实例

//使用自定义的回调函数,对键名进行排序
// 根据键名的第二个字母进行排序
$lang = ['html'=>'标记语言','css'=>'样式表','javascript'=>'前端脚本','php'=>'后端脚本'];
uksort($lang, function($m, $n) {
    $a = substr($m,1,1 );
    $b = substr($n,1,1 );
    return strcmp($a, $b);
});
echo var_export($lang),'<hr>'; 

//输出结果
array ( 'javascript' => '前端脚本', 'php' => '后端脚本', 'css' => '样式表', 'html' => '标记语言', )

运行实例 »

点击 "运行实例" 按钮查看在线实例


Correction status:qualified

Teacher's comments:
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post