如何按值对PHP中的数组进行排序?

如果有人可以帮助我,我将非常感激。

我的代码:

$product_var_tpl = array(



                        'name' => $product['name'].(isset($product['attributes']) ? ' - '.$product['attributes'] : ''),

                        'unit_price' => Tools::displayPrice($product_price, $this->context->currency, false),

                        'price' => Tools::displayPrice($product_price * $product['quantity'], $this->context->currency, false),

                        'quantity' => $product['quantity'],

                        'reference' => $seller_name,

                        'customization' => array()


                    );

我想按字母顺序按“参考”对这个数组进行排序。


我试过这个:


usort($product_var_tpl, function($a, $b) {

    return $a['reference'] - $b['reference'];

});

但结果为 null 或空。


默认情况下输出是:


Referance     |   Product name | Unite price |  Qty  |  Price


testshop2     |   pere         | 42,00       |  0.5  | 21,00 

testshoptwo   |   portocale    | 21,00       |  1    | 21,00     

irinatestshop |   qiwi         | 34,00       |  0.5  | 17,00 

irinatestshop |   Banane       | 12,00       | 1     | 12,00 

如果我使用“usort”,我只会得到 4 个空行


慕村9548890
浏览 111回答 1
1回答

蝴蝶刀刀

请排序$product_var_tpl_list,不是$product_var_tpl。以下是示例代码。$array = array(       // $product_var_tpl_list        array(        // $product_var_tpl 1            'name' => 'b',            'reference' => 'bbb'            ),        array(        // $product_var_tpl 2            'name' => 'a',            'reference' => 'aaa'            ),        array(        // $product_var_tpl 3            'name' => 'd',            'reference' => 'ddd'            ),        array(        // $product_var_tpl 4            'name' => 'c',            'reference' => 'ccc'            ),        array(        // $product_var_tpl 5            'name' => 'e',            'reference' => 'eee'            ),        array(        // $product_var_tpl 6            'name' => 'a',            'reference' => 'www'            )    );usort($array, function($a, $b) {    return strcmp($a['reference'], $b['reference']);});print_r($array);测试结果如下。Array(    [0] => Array        (            [name] => a            [reference] => aaa        )    [1] => Array        (            [name] => b            [reference] => bbb        )    [2] => Array        (            [name] => c            [reference] => ccc        )    [3] => Array        (            [name] => d            [reference] => ddd        )    [4] => Array        (            [name] => e            [reference] => eee        )    [5] => Array        (            [name] => a            [reference] => www        ))
打开App,查看更多内容
随时随地看视频慕课网APP