php页面中,有二维数组,数组中有一值num,
现已知num=7.0  需把小于num并是最大值 的那一列值输出,也就是输出 num=6.0的那个数组,
$arr = array(
 array( 'id' => 5,  'num' => '5.0'),
 array( 'id' => 3,  'num' => '6.0 ),
 array( 'id' => 6,  'num' => '7.0 ),
);
如何实现,thanks.

解决方案 »

  1.   

    $a = $arr = array(
    array( 'id' => 5, 'num' => '5.0'),
    array( 'id' => 3, 'num' => '6.0' ),
    array( 'id' => 6, 'num' => '7.0' ),
    );
    $num = 7.0;
    $max = 0.0;
    foreach($arr as $v){if($v['num'] < $num && $v['num'] > $max)$a = $v;}print_r($a);
      

  2.   


    <?php
    $arr = array(
     array( 'id' => 5, 'num' => '5.0'),
     array( 'id' => 3, 'num' => '6.0' ),
     array( 'id' => 6, 'num' => '7.0' ),
    );
    $m=7.0;
    for ($i=0;$i<count($arr);$i++){
    if($arr[$i]['num']<$m){
    $data[]=$arr[$i]['num'];
    $result[]=$arr[$i];
    }
    }
    $rt=max($data);
    foreach ($result as $v){
    if($v['num']===$rt){
    print_r($v);
    }
    }?> 
      

  3.   

    如果num是没有排序的话 不遍历恐怕是不行的。如果num有排序碰到你要找那个数就break.前一个就是了。
      

  4.   

    num可排序的,都是数字
    还有没有好方法呀,