php 获取二位数组中某一个元素最小的值
比如一个二维数组是array{[0]=>array{'id'=>1,'name'=>'卧室','persiods'=>8},[1]=>array{'id'=>1,'nam...
比如一个二维数组是
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函数或者其他好的方法,求高手帮忙 展开
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函数或者其他好的方法,求高手帮忙 展开
2个回答
展开全部
这个题有两个思路:
第一个是自己写个排序算法,将二维数组按照指定的键排序,如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就是你要的了
第一个是自己写个排序算法,将二维数组按照指定的键排序,如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就是你要的了
追问
非常谢谢
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2014-11-23
展开全部
$arr=二维数组
$mix=$arr[0]['persiods'];
foreach($arr as $key => $val){
if($mix > $val['persiods']){
$mix=$val['persiods'];
}
}
echo $mix;
$mix=$arr[0]['persiods'];
foreach($arr as $key => $val){
if($mix > $val['persiods']){
$mix=$val['persiods'];
}
}
echo $mix;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询