2014-09-13 112 views
2

我想根据MYCOUNT索引对我的数组行进行排序,该索引由我的代码计算得出。 MYCOUNT计算的匹配字数关键字。我有谷歌不同的功能,但我从来没有得到所需的结果。我是新的PHP我不知道如何做到这一点,我从来没有在谷歌上找到可以帮助我的结果。如何使用特定键对数组进行排序

$word = "red pent"; 
$flag = true; 
$main_flag = true; 
$list = array(); 
$result = $this->db->get('products')->result_array(); 
foreach ($result as $product): 
    $main_flag = true; 
    $keywords = explode(';', $product['product_keyword']); 
    $count = 0; 
    foreach ($keywords as $keys) { 
     $search = explode(' ', $word); 
     $local_f = false; 
     foreach ($search as $w) { 
      if (strtolower(trim($w)) === strtolower(trim($keys))) { 
       $local_f = true; 
       $count++; 
       break; 
      } 
     } 
    } 
    if ($count > 0) { 
     $product['mycount'] = $count; 
     array_push($list, $product); 
    } 
    if ($main_flag) { 
     //array_push($list,$product); 
    } 
endforeach; 

阵列数据

Array 
(
    [0] => Array 
     (
      [product_id] => 5 
      [product_sku] => AD021CAFOR 
      [product_code] => X12343 
      [product_name] => Ten aZ Cap 
      [product_price] => 600 
      [product_actual_price] => 2000 
      [product_discount] => 70 
      [product_gender] => MEN 
      [product_group] => Accessories 
      [product_category] => Cap 
      [product_sub_category] => 
      [product_sport] => Training 
      [product_weight] => 
      [outlet_id] => 1 
      [product_desc] => Adidas Ten aZ Cap CLIMACOOL 
      [product_short_desc] => Adidas Ten aZ Cap CLIMACOOL 
      [product_added_on] => 2014-02-20 
      [product_updated_on] => 
      [product_image] => image1.png 
      [product_thumbnail] => image1.png;image2.png;image3.png;image4.png;image5.png;image6.png 
      [product_list_image] => rightside-list1_03.png 
      [product_keyword] => Red;shirt;adidas 
      [mycount] => 1 
     ) 

    [1] => Array 
     (
      [product_id] => 6 
      [product_sku] => AD021CAFRO 
      [product_code] => X17618 
      [product_name] => Ess 3S fit Cap 
      [product_price] => 600 
      [product_actual_price] => 2000 
      [product_discount] => 70 
      [product_gender] => MEN 
      [product_group] => Accessories 
      [product_category] => Cap 
      [product_sub_category] => 
      [product_sport] => Training 
      [product_weight] => 
      [outlet_id] => 1 
      [product_desc] => The adidas Performance ESS 3S Cap has a curved peak and features neon adidas 3 stripes detailing on the front. The cap is made from a breathable, 100% cotton fabric and has an adjustable strap on the back. 
      [product_short_desc] => Essentials 3 Stripes Cap 
      [product_added_on] => 2014-02-20 
      [product_updated_on] => 
      [product_image] => image1.png 
      [product_thumbnail] => image1.png;image2.png;image3.png;image4.png;image5.png;image6.png 
      [product_list_image] => rightside-list1_03.png 
      [product_keyword] => red;pent;outfiters 
      [mycount] => 2 
     ) 

) 

回答

2

当你要根据你使用the sorting functions,使 “用户自定义” 分类用户定义的标准,如uasort排序:

function sortby_mycount_asc($a, $b) { 
    return $a["mycount"] - $b["mycount"]; 
} 
uasort($product, "sortby_mycount_asc"); 
0

它在我的情况下工作

function cmp($a, $b) { 

     if ($a['mycount'] == $b['mycount']) { 
      return 0; 
     } 
     return ($a < $b) ? 1 : -1; 
    } 

    uasort($list,"cmp"); 
相关问题