php 获取二位数组中某一个元素最小的值

比如一个二维数组是
array{
[0] =>array {
'id'=>1,
'name'=>'卧室',
'persiods'=>8
},

[1] =>array {
'id'=>1,
'name'=>'卧室',
'persiods'=>9
},

[2] =>array {
'id'=>1,
'name'=>'卧室',
'persiods'=>8
},

[3] =>array {
'id'=>1,
'name'=>'卧室',
'persiods'=>10
},

[4] =>array {
'id'=>1,
'name'=>'卧室',
'persiods'=>7
},

[5] =>array {
'id'=>1,
'name'=>'卧室',
'persiods'=>7
},

[6] =>array {
'id'=>1,
'name'=>'卧室',
'persiods'=>7
}
}

就是这样的二维数组,我想获取这个二维数组中persiods这个元素值最小的是哪个值,把这个值获取出来就行,有没有可以按照persiods元素从小到大排序的php函数或者其他好的方法,求高手帮忙

第1个回答  推荐于2017-12-15
这个题有两个思路:
第一个是自己写个排序算法,将二维数组按照指定的键排序,如persiods,这样的方法网上多的是,大致过程如下(自己修改验证,我这里不是很方便进行运行):

// 使用冒泡排序法进行排序
function sortMultiArray($arr, $key) {
$len = count($arr);

for ($i=0; $i<$len-1; $i++) {
for ($j=$i+1; $j<$len; $j++) {
if ($arr[$i][$key] > $arr[$j][$key]) {
$tmp = $arr[$i][$key];

$arr[$i][$key] = $arr[$j][$key];
$arr[$j][$key] = $tmp;
}
}

}

return $arr;

}
然后把你的参数传进去,取第一个就可以了。

第二种方式就简单了,如果这种操作不通用,或者你只运行一次,下面的方法就简单多了:
// 首先我们假设最下的是$min,默认是null
$min = null;
// $arr是你要处理的数据
$arr = array(...);
// 然后遍历就可以了
$len = count($arr);
for ($i=0; $i<$len; $i++){
if ($i==0){
$min = $arr[$i];

continue;

}

if ($arr[$i]['persiods']>$min['persiods']){
$min = $arr[$i];
}

}
// 最后这个$min就是你要的了追问

非常谢谢

本回答被提问者和网友采纳
第2个回答  2014-11-23
$arr=二维数组
$mix=$arr[0]['persiods'];
foreach($arr as $key => $val){
if($mix > $val['persiods']){
$mix=$val['persiods'];
}
}

echo $mix;
相似回答