Array
(
    [0] => Array
        (
            [0] => 14703
            [1] => 【寻犬】旺旺昨天丢了!请大家帮忙!
            [2] => 1236911820
            [3] => sindri
        )    [1] => Array
        (
            [0] => 14724
            [1] => 求助!紧急,请养藏獒的朋友帮忙
            [2] => 1237288104
            [3] => 豆豆
        )    [2] => Array
        (
            [0] => 14437
            [1] => 世界名犬应有尽有 低价出售品质保证
            [2] => 1236993402
            [3] => 大眼睛双鱼
        ))
上面第三项,如何取出[2] => 1236993402这一维的最高值,返回该记录的id,即[2] => Array
        (
            [0] => 14437
            [1] => 世界名犬应有尽有 低价出售品质保证
            [2] => 1236993402
            [3] => 大眼睛双鱼
        )排序上不知何好办法?

解决方案 »

  1.   

    手冊例子:
    <?php
    $ar = array (array ("10", 100, 100, "a"), array (1, 3, "2", 1));
    array_multisort ($ar[0], SORT_ASC, SORT_STRING,
                     $ar[1], SORT_NUMERIC, SORT_DESC);
    ?> 本例中 data 数组中的每个单元表示一个表中的一行。这是典型的数据库记录的数据集合。 例子中的数据如下: volume | edition
    -------+--------
        67 |       2
        86 |       1
        85 |       6
        98 |       2
        86 |       6
        67 |       7
     数据全都存放在名为 data 的数组中。这通常是通过循环从数据库取得的结果,例如 mysql_fetch_assoc()。 <?php
    $data[] = array('volume' => 67, 'edition' => 2);
    $data[] = array('volume' => 86, 'edition' => 1);
    $data[] = array('volume' => 85, 'edition' => 6);
    $data[] = array('volume' => 98, 'edition' => 2);
    $data[] = array('volume' => 86, 'edition' => 6);
    $data[] = array('volume' => 67, 'edition' => 7);
    ?>  本例中将把 volume 降序排列,把 edition 升序排列。 现在有了包含有行的数组,但是 array_multisort() 需要一个包含列的数组,因此用以下代码来取得列,然后排序。 <?php
    // 取得列的列表
    foreach ($data as $key => $row) {
        $volume[$key]  = $row['volume'];
        $edition[$key] = $row['edition'];
    }// 将数据根据 volume 降序排列,根据 edition 升序排列
    // 把 $data 作为最后一个参数,以通用键排序
    array_multisort($volume, SORT_DESC, $edition, SORT_ASC, $data);
    ?>  数据集合现在排好序了,结果如下: volume | edition
    -------+--------
        98 |       2
        86 |       1
        86 |       6
        85 |       6
        67 |       2
        67 |       7
     你的問題用上面的方法可以解決,沒時間寫,你自己看吧
      

  2.   

    <?php  
    foreach ($array as $key=>$value){
    $value0[$key] = $value[0];
    $value1[$key] = $value[1];
            $value2[$key] = $value[2];
    $value3[$key] = $value[3];
    }
     
    array_multisort($value2,SORT_NUMERIC,SORT_DESC, $value0,SORT_STRING,SORT_ASC,$value1,SORT_STRING,SORT_ASC, $value3,SORT_STRING,SORT_ASC,$array);
    print_r($array);
    ?>
      

  3.   


    $arr = array(
    0=>array(0=>'14703',1=>'旺旺昨天丢了!请大家帮忙',2=>'1236911820'),
    1=>array(0=>'14724 ',1=>'求助!紧急,请养藏獒的朋友帮忙',2=>'1237288104'),
    2=>array(0=>'14437',1=>'世界名犬应有尽有 低价出售品质保证',2=>'1236993402 '),
    );function array_sort_key(array &$array, $key) {    global $_key;    if(!function_exists(_array_sort_key_cmp)) {        function _array_sort_key_cmp($a, $b) {            global $_key;            return strcmp($a[$_key], $b[$_key]);
                
            }    }    $_key = $key;    $result = usort($array, "_array_sort_key_cmp");    unset($_key);    return $result;
    }echo "按0排序\n<BR><BR>";
    array_sort_key($arr, 0);
    var_export($arr);
    echo "\n按1排序\n<BR><BR>";
    array_sort_key($arr, 1);
    var_export($arr)."\n";
    echo "\n按2排序\n<BR><BR>";
    array_sort_key($arr, 2);
    var_export($arr);
      

  4.   


    上面这个数组是从数据库根据表记录读出来的数组,第一级是记录顺度;第二级是每个记录各列的值如果在数据库,要想的结果就是最后发贴的记录,实际上就是按时间序列倒序排序,取第一个记录即select *  from tbl order by pubdate limit 1现在想在数组中实现这个排序
      

  5.   

    <?php 
    // 取得列的列表 
    foreach ($data as $key => $row) { 
        $volume[$key]  = $row['volume']; 
        $edition[$key] = $row['edition']; 
    } // 将数据根据 volume 降序排列,根据 edition 升序排列 
    // 把 $data 作为最后一个参数,以通用键排序 
    array_multisort($volume, SORT_DESC, $edition, SORT_ASC, $data); 
    ?>  数据集合现在排好序了,结果如下: volume | edition 
    -------+-------- 
        98 |      2 
        86 |      1 
        86 |      6 
        85 |      6 
        67 |      2 
        67 |      7 
      

  6.   

    谢谢各位了!$data=array (
      0 => 
      array (
        0 => '14703',
        1 => '【寻犬】旺旺昨天丢了!请大家帮忙!',
        2 => '1236911820',
        3 => 'sindri',
      ),
      1 => 
      array (
        0 => '14724',
        1 => '求助!紧急,请养藏獒的朋友帮忙',
        2 => '1237288104',
        3 => '豆豆',
      ),
      2 => 
      array (
        0 => '14437',
        1 => '世界名犬应有尽有 低价出售品质保证',
        2 => '1236993402',
        3 => '大眼睛双鱼',
      ),
    );foreach($data as $key => $row){
       $time[$key]  = intval($row[2]);
    }
    array_multisort($time, SORT_DESC, $data);
    print_r($data);
    看了一下,原理都差不多,都要生成要排序列的数组