排序while函数

时间:2019-03-24 19:45:49

标签: php sorting

我在网上商店的管理员中有一个购买日志,一个客户购买了许多产品,所有产品都标有SKU,我想按sku对购买日志进行分类和分组。

有什么办法可以对此进行排序并分组吗?

它的购买日志SKU可能如下所示:

27318
15277
14065
6236
vild-100
N/A
blomsterkasser-40g
16694
7147
24608

以及我要查找的排序版本:

6236
7147
14065
15277
16694
24608
27318
blomsterkasser-40g
vild-100
N/A

代码如下:

private function purchase_log_cart_items() {
while( wpsc_have_purchaselog_details() ) :
wpsc_the_purchaselog_item(); ?>
<tr>
<td><?php echo wpsc_purchaselog_details_quantity(); ?> x </td> <!-- QUANTITY! -->
<td><?php echo wpsc_purchaselog_details_name(); ?></td> <!-- NAME! -->
<td><?php echo wpsc_purchaselog_details_SKU(); ?></td> <!-- SKU! -->
<td>
<?php
echo wp.....

1 个答案:

答案 0 :(得分:3)

您可以使用usort和自定义排序功能来完成此操作:

$array = [
    27318,
    15277,
    14065,
    6236,
    'vild-100',
    'N/A',
    'blomsterkasser-40g',
    16694,
    7147,
    24608
];

usort($array, function($left, $right) {
    // else 'blomsterkasser-40g' would be the first entry
    $left = (string) $left;
    $right = (string) $right;
    // always put 'N/A' on the last position
    if($left == 'N/A' && $right == 'N/A') {
        return 0;    
    }else if($left == 'N/A') {
        return 1;
    } else if($right == 'N/A') {
        return -1;
    }

    return $left <=> $right;
});

var_dump($array);

工作代码:https://3v4l.org/2K5sO