首页 > 学院 > 逻辑算法 > 正文

PHP常见算法或函数详解

2020-03-22 18:50:29
字体:
来源:转载
供稿:网友
本文主要和大家分享PHP常见算法或函数详解,主要以代码的方式和大家分享,希望能帮助到大家。

<?php//不用第三个变量,交换两个变量的值function changeVar(){    $a = '123';    $b = '456';        list($a, $b) = array($b, $a);        echo $a . '-' . $b;}//文件锁function fileLock(){    $fp = fopen('./tmp.txt', 'w+');    if (flock($fp, LOCK_EX)) { //独占锁定        fwrite($fp, 'write something/n');        flock($fp, LOCK_UN);//释放锁    } else {        echo "can't lock!";    }    fclose($fp);}//获取文件后缀function getExtName($url){    $path_info = pathinfo($url);    $ext_name = $path_info['extension'];    echo $ext_name;}/*斐波那契数列第n位是什么,递归实现* @param int $n 位数*/function fibonacci($n){    $return = 1;    if ($n <= 0) {        $return = 0;    } elseif ($n <= 2) {        $return = 1;    } else {        $return = fibonacci($n - 2) + fibonacci($n - 1);    }    return $return;}//自己实现number_formatfunction numFormat($num){    // return number_format($num);    $num = strrev($num);//反转    $num = str_split($num, 3);//分割成数组    $num = implode(',', $num);//拼接    $num = strrev($num);//再反转    return $num;}//冒泡排序function bubble_sort(&$arr){    $len = count($arr);    for ($i = 0; $i < $len; $i++) {        for ($j = 1; $j < $len - $i; $j++) {            if ($arr[$j - 1] > $arr[$j]) {                $tmp = $arr[$j];                $arr[$j] = $arr[$j - 1];                $arr[$j - 1] = $tmp;            }        }    }}//快速排序function quickSort($arr){    $len = count($arr);    if ($len <= 1) {        return $arr;    }    $base = $arr[0];    $left_array = array();    $right_array = array();    for ($i = 1; $i < $len; $i++) {        if ($arr[$i] > $base) {            $left_array[] = $arr[$i];        } else {            $right_array[] = $arr[$i];        }    }    $left_array = quickSort($left_array);    $right_array = quickSort($right_array);    return $left_array;}//二维数组排序function array_sort($arr, $keys, $order = 'ASC'){    if (!is_array($arr)) {        return false;    }    $keyshtml' target='_blank'>value = array();    foreach ($arr as $k => $v) {        $keysvalue[$k] = $v[$keys];    }    if ($order == 'ASC') {        asort($keysvalue);    } else {        arsort($keysvalue);    }    reset($keysvalue);    foreach ($keysvalue as $k => $v) {        $keysort[$k] = $k;    }    foreach ($keysort as $k => $v) {        $new_arr[] = $arr[$v];    }        return $new_arr;}//使用自带函数二维数组排序function array_sort2(&$arr, $keys, $order = SORT_ASC){    array_multisort(array_column($arr, $keys), $order, $arr);}//二分查找function bin_sch($arr, $low, $top, $target){    sort($arr);    while ($low <= $top) {        $mid = floor(($low + $top)/2);        if ($arr[$mid] == $target) {            return $arr[$mid];        } elseif ($arr[$mid] < $target) {            $low = $mid + 1;            bin_sch($arr, $low, $top, $target);        } else {            $top = $mid - 1;            bin_sch($arr, $low, $top, $target);        }    }    return -1;}//遍历文件夹function my_scandir($dir){    $files = array();    if ($handle = opendir($dir)) {        while (($filename = readdir($handle)) !== false) {            if ($filename != '.' && $filename != '..') {                if (is_dir($dir."/".$filename)) {                    $files[$filename] = my_scandir($dir."/".$filename);                } else {                    $files[] = $filename;                }            }        }         closedir($handle);        return $files;    }}//get_user_id改为getUserIdfunction change($str){    $str = ucwords($str, '_');    return str_replace('_', '', $str);}//反转每个单词function convert($input) {    $arr = explode(" ", $input);    array_walk($arr, function (&$value) {        $value = strrev($value);    });    $output =  implode(" ", $arr);    echo $output;}

相关推荐:

2018前端面试常见算法题

JavaScript 面试中常见算法问题详解

PHP兑现的几种常见算法

以上就是PHP常见算法或函数详解的详细内容,更多请关注 其它相关文章!

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表