【发布时间】:2021-10-25 17:18:56
【问题描述】:
我正在使用我的 ACF 字段在 Wordpress 中获得 REST API 响应。我想根据每个字段的指定顺序数组按两个不同的字段对数组进行排序。我见过this question,但他们没有使用自定义排序顺序,所以我不确定如何将解决方案应用于我的情况。我已经对这样的一阶数组进行了排序(product_size 是我的 ACF 字段):
$sizeOrder = array('Small', 'Medium', 'Large');
usort($data, function ($a, $b) use ($sizeOrder) {
$pos_a = array_search($a['acf']['product_size'], $sizeOrder);
$pos_b = array_search($b['acf']['product_size'], $sizeOrder);
return $pos_a - $pos_b;
});
现在假设我还想按另一个顺序数组对另一个名为 product_color 的 ACF 字段进行排序:
$colorOrder = array('White', 'Blue', 'Black');
这两种可以合二为一吗?我尝试只是复制下面的代码并换出 order 数组和 ACF 字段,但是按大小排序不起作用。
【问题讨论】:
-
当然,如果您执行两个单独的排序操作,您不会得到想要的结果。您需要一次性完成这两项工作。如果两个项目的大小相同,那么您需要比较它们的颜色顺序,并返回第二次比较的结果。