无法对 Shopify 产品 API 调用的响应进行排序

Cannot sort response of Shopify Product API call

关于这个端点:https://shopify.dev/docs/admin-api/rest/reference/products/product#index-2020-04

我在参数中使用逗号分隔的 ID 列表来调用它。我假设 API 返回的产品顺序与参数中以逗号分隔的 ID 列表的顺序相同。好像不是这样的。

有没有办法让返回的顺序相同?

如果没有,事后还有其他方法吗?

这是我的代码片段:

        while($row = $result->fetch_array(MYSQLI_ASSOC)) {
            $productIDs[] = (int)$row['product_id'];
        }
        $params = array(
            'ids'        => implode(', ', $productIDs),
            'fields' => 'title,handle,vendor,price,images'
        );
        $products = $shopify->Product()->get($params);

$products 中的产品顺序与 $productIDs 中的产品顺序不同。

知道为什么会这样或者我怎样才能使订单匹配?

我最终这样做了:

            foreach($productIDs as $productID) {
                foreach($products as $product) {
                    if ($productID == $product['id']) {                 
                        $sortedProducts[] = $product;
                    }
                }
            }

现在 $sortedProducts 本质上是 $products 变量排序以匹配 $productIDs 中的顺序。

有没有比两个嵌套循环更好的方法?

这是另一种方法:

usort($products, function($p1, $p2) use ($productIDs) {
    $pos_p1 = array_search($p1['id'], $productIDs);
    $pos_p2 = array_search($p2['id'], $productIDs);
    return $pos_p1 - $pos_p2;
});

Shopify REST API 不支持对产品进行排序。我认为返回的产品总是按标题排序。