php小算法总结一(数组重排,进制转换)

1.两个有序数组组合成一个新的有序数组

<?php

$arr1=array(2,5,7,9,12);

$arr2=array(3,4,6,8,10,11);

function merge_sort($arr1,$arr2){

    $len1=count($arr1);

    $len2=count($arr2);

    $arr=array();

    $i=$j=0;

    while($i<$len1&&$j<$len2){

        if($arr1[$i]<=$arr2[$j]){

            $arr[]=$arr1[$i++];

        }else{

            $arr[]=$arr2[$j++];

        }

    }

    while($i<$len1)

        $arr[]=$arr1[$i++];

    while($j<$len2)

        $arr[]=$arr2[$j++];



    return $arr;

}



print_r(merge_sort($arr1,$arr2));

 2.十进制转26进制(a-z表示)

function tento26($num){

    $str='';

    $chu=floor($num/26);

    $yu=$num%26;

    $str.="{".$yu."}";

    if($chu>26){

        $str.=tento26($chu);

    }else{

        $str.="{".$chu."}";

    }

    return $str;

}



function numtoalph($match){

    $alp=' abcdefghijklmnopqrstuvwxyz';

    if($match[1]>=26){

        return false;

    }

    return $alp[$match[1]];

}

$str= tento26(300);



$str1=strrev(preg_replace_callback('#\{(\d+)\}#','numtoalph',$str));

echo $str1;

 3.数组转json

<?php

function myjson_encode($arr){

    $jsonstr='{';

    foreach($arr as $k=>$v){

        if(is_array($v)){

            $jsonstr.='"'.$k.'":'.myjson_encode($v).',';

        }else{

            $jsonstr.='"'.$k.'":"'.$v.'",';

        }

    }

    $jsonstr=trim($jsonstr,',');

    $jsonstr.='}';

    return $jsonstr;

}

 

你可能感兴趣的:(进制转换)