php 版本排序,PHP百度面试题:版本号排序

$a = "111.101.202.1.0";

$b = "111.101.202.1.1";

$va = explode('.', $a);

$vb = explode('.', $b);

//比较函数

function comparefun($va,$vb){

$a = array_shift($va);

$b = array_shift($vb);

if($a>$b){

echo '前者版本高';

return 0;

}elseif($a

echo '后者版本高';

return 0;

}else{

return comparefun($va,$vb);

}

}

comparefun($va,$vb);

然后怎么排序呢?似乎面试的最后都是排序题

做一个简单的冒泡排序:

$versionArr=array(

"111.101.202.1.0",

"111.101.202.1.1",

"112.101.202.1.1",

"111.103.202.1.1",

"111.103.201.0.1"

);

//比较函数

function comparefun($va,$vb){

$a = array_shift($va);

$b = array_shift($vb);

if($a>$b){

return 1;

}elseif($a

return 0;

}else{

return comparefun($va,$vb);

}

}

array_walk($versionArr, function(&$value){

$value = explode('.', $value);

});

for($i=0;$i

for($j=0;$j

if(comparefun($versionArr[$j],$versionArr[$j+1])){

$tmp = $versionArr[$j];

$versionArr[$j] = $versionArr[$j+1];

$versionArr[$j+1] = $tmp;

}

}

}

array_walk($versionArr, function(&$value){

$value = implode('.', $value);

});

var_dump($versionArr);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值