function getRelativePath($a, $b) {
$relativePath = "";
$pathA = explode('/', dirname($a));
$pathB = explode('/', dirname($b));
$n = 0;
$len = count($pathB) > count($pathA) ? count($pathA) : count($pathB);
for ($n = 0; $n < $len; $n++) {
if ( $n >= $len || $pathA[$n] != $pathB[$n] ) {
echo $n ;
break;
}
}
$relativePath .= str_repeat('../', count($pathB) - $n);
$relativePath .= implode('/', array_splice($pathA, $n));
return $relativePath;
}
function StrToInt($str)
{
// write code here
$tem = array('1','2','3','4','5','6','7','8','9','0');
$len = strlen($str);
if($len == 0)return 0;
$arr = str_split($str);
$sum = 0;
for ($i =0; $i <count($arr); $i++) {
$sum = $sum*10 + $arr[$i];
}
$fuhao = 0;
if($arr[0] == '-'){
$fuhao = 1;
}
$sum = 0;
for($i = $fuhao; $i<$len; $i++){
if($arr[$i] == '+'){
continue;
}
if(!in_array($arr[$i],$tem)){
return 0;
}
$sum = $sum*10 + $arr[$i];
}
return $fuhao == 0 ? $sum : -1*$sum;
}
-
- function binSearch2($arr,$low,$height,$k){
- if($low<=$height){
- $mid=floor(($low+$height)/2);
- if($arr[$mid]==$k){
- return $mid;
- }elseif($arr[$mid]<$k){
- return binSearch2($arr,$mid+1,$height,$k);
- }elseif($arr[$mid]>$k){
- return binSearch2($arr,$low,$mid-1,$k);
- }
- }
- return -1;
- }
function string_fz($string){
$len = strlen($string);
$mid = floor($len/2);
for($i=0; $i<$mid; $i++){
$temp = $string[$i] ;
$string[$i] = $string[$len-$i-1];
$string[$len-$i-1] =$temp;
}
return $string;
}
//指定数组以$keys键值排序
function array_sort1($array,$keys,$type='asc'){
$keysvalue = $new_array = array();
foreach ($array as $k=>$v){
$keysvalue[$k] = $v[$keys];
}
if($type == 'asc'){
asort($keysvalue);
}else{
arsort($keysvalue);
}
reset($keysvalue);
foreach ($keysvalue as $k=>$v){
$new_array[$k] = $array[$k];
}
return $new_array;
}