mysql中有个search_urls表
id   keyword        title                     nums
1    中国   中国人|中国地|中国话           2|4|3执行 select * from search_urls where keyword='中国' ;
php页面得到的数据中
$arr['title']="中国人|中国地|中国话"
$arr['nums']="2|4|3";
然后我再拆下上面的,输出就是 中国人  中国地 中国话
问题
1 能不能从sql上着手,我要得到 按nums中的大到小排序,也就是得到 中国地|中国话|中国人  (以前 是中国人|中国地|中国话)
2 如果不能从sql着手,$arr['title']="中国人|中国地|中国话";$arr['nums']="2|4|3"; 就这二个值时,我怎么样按nums中大到小的值来排title呢,
thanks

解决方案 »

  1.   


    $nums = explode('|',$arr['nums']);
    $title = explode('|',$arr['title']);
    $a = array();
    for($i=0;$i<count($nums);$i++){
      $a[$nums[$i]] = $title[i];
    }
    ksort($a);
    print_r($a);
      

  2.   

    $a[$nums[$i]] = $title[i];
    少了个$
      

  3.   

    多谢大家
    $arr['title']="中国人|中国地|中国话";
    $arr['nums']="2|4|3";
    $nums = explode('|',$arr['nums']);
    $title = explode('|',$arr['title']);
    $a = array();
    for($i=0;$i<count($nums);$i++)
    {
     $a[$nums[$i]] = $title[$i];
    }
    echo $rs;
    //ksort($a);
    krsort($a);
    foreach($a as $b)

     echo $b;
    }
    可以,
      

  4.   


    $nums = explode('|',$arr['nums']);
    $title = explode('|',$arr['title']);
    $result = array_combine($nums, $title);
    ksort($result);
    print_r($result);