美文网首页PHP
PHP 数组(Array) - 排序算法

PHP 数组(Array) - 排序算法

作者: 887d1fc86fe6 | 来源:发表于2020-04-27 14:25 被阅读0次
  • PHP手册 - 对数组进行排序

  • 数组查找算法
    查找算法,就是从一个数组中,找一个“目标”(可以是值,也可以是键)的算法。
    数组的查找函数:

    • in_array():在一个数组中找是否存在某个数据。
    • array_search():在数组中搜索给定的值,如果成功则返回相应的键名。
    • array_key_exists():检查给定的键名或索引是否存在于数组中。
<?php
  $info1 = ['dzm', 18, '男'];
  $info2 = ['name'=>'dzm', 'age'=>18, 'gender'=>'男'];

  echo in_array('男', $info1); // 1
  echo array_search('男', $info1); // 2
  echo array_search('男1', $info1); // bool(false)
  echo array_key_exists(0, $info1); // bool(true)
?>
  • 排序函数简介
<?php
  $arr = array(
    'a' => 3,
    'b' => 12,
    'c' => 4,
    'd' => 20,
    'e' => 22,
    'f' => 30
  );
  
  // 默认输出
  print_r($arr);

  // 排序 sort() 由低到高
  sort($arr);
  print_r($arr); // Array ( [0] => 3 [1] => 4 [2] => 12 [3] => 20 [4] => 22 [5] => 30 )

  // 排序 rsort() 由高到低
  rsort($arr);
  print_r($arr); // Array ( [0] => 30 [1] => 22 [2] => 20 [3] => 12 [4] => 4 [5] => 3 )
?>

  • 冒泡排序
<?php
// 数组
$arr = [18, 22, 12, 15, 23, 9];
// 数组长度
$n = count($arr);
// 需要比较几趟
for ($i = 0; $i < $n - 1; $i++) { 
  // 在每一趟一里面,需要进行比较几次
  for ($k = 0; $k < $n - 1 - $i; $k++) { 
    // 进行比较, 如果前面的大于后面的,就需要进行交换位置
    if ($arr[$k] > $arr[$k + 1]) {
      $temp = $arr[$k];
      $arr[$k] = $arr[$k + 1];
      $arr[$k + 1] = $temp;
    }else{
      // 如果小于,则不用做处理
    }
  }
}
// 输出
print_r($arr); // Array ( [0] => 9 [1] => 12 [2] => 15 [3] => 18 [4] => 22 [5] => 23 )
?>

相关文章

网友评论

    本文标题:PHP 数组(Array) - 排序算法

    本文链接:https://www.haomeiwen.com/subject/vhzewhtx.html