php页面中$num = 3;
$arr = array(
    array( 'id' => 3, 'num' =>1 ),
    array( 'id' => 5, 'num' => 2),
    array( 'id' => 6, 'num' =>3 ),
    array( 'id' => 8, 'num' => 4 ),
    array( 'id' => 9, 'num' => 5 ),
);要得到比定值大的最小值,也就是得到4  如何实现,thanks

解决方案 »

  1.   

    $minNum = 0;
    foreach ($arr as $k=>$v)
    {
    if($v["num"]>$num)
    {
    if($minNum==0)
    {
    $minNum = $v["num"];
    }
    else
    {
    if($v["num"]<$minNum)
    {
    $minNum=$v["num"];
    }
    }
    }
    }
    echo $minNum;
      

  2.   

    <?php
    //为了测试我把你的数组打乱了
    $arr = array(
      array( 'id' => 3, 'num' =>1 ),
      array( 'id' => 5, 'num' => 3),
      array( 'id' => 6, 'num' =>5 ),
      array( 'id' => 8, 'num' => 2 ),
      array( 'id' => 9, 'num' => 4 ),
    );
    //过滤掉比定值小的
    function foo($v){
    if($v['num'] > 3)
    return $v;
    }
    $new_arr = array_filter($arr,'foo');
    //排序过滤后的数组(根据num值升序排列)
    $numarr = array();
    foreach($new_arr as $v){
    $numarr[] = $v['num'];
    }
    array_multisort($numarr,SORT_ASC,$new_arr);
    //$new_arr数组中第一个值就是我们要找的
    echo $new_arr[0]['num'];
    ?>
      

  3.   

    $min = 3;$max=100;
    foreach($arr as $key => $val){
    if($val["num"]>$min && $val["num"]<$max){
    $max = $val["num"];
    }
    }