php - 如何按特定键对数组数组进行排序

标签 php arrays sorting

我想根据我的代码计算的 MYCOUNT 索引对数组行进行排序。 MYCOUNT 是计算得出的 KEYWORDS 中匹配的单词数。我有谷歌不同的功能,但我从未得到所需的结果。我是 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
        )

)

最佳答案

当您想要根据用户定义的标准进行排序时,您可以使用 the sorting functions允许“用户定义”排序,例如 uasort :

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

关于php - 如何按特定键对数组数组进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25821196/

相关文章:

python - 按单个字符名称对列进行排序,元音在前

c++ - 在使用 NaCl 的 C++ 中,如何按值对 JSON 对象进行排序?

php - 使用 while 循环获取图像

php - 使用 php/codeigniter 删除文件

php - 使用 Symfony2 验证嵌入表单

c++ - 成员引用基类型不是结构或 union

java - 改变数组元素的顺序

php - 在 PHP 生成的 Javascript 中转义撇号

c - 查找多维数组的大小

c - 在 C 中优化 'sorting code'