Magento - 对包含数字的名称进行排序
Magento - Sort name that includes a number
我是编程网站的新手,所以这可能是一个愚蠢的问题。我有包含数字的产品名称。这本身不是问题,Magento 的排序是。
Magento 排序如下:
- 产品 10
- 产品 11
- 产品 12
- 产品 1
- 产品 2
- 产品 3
我希望它像这样排序:
- 产品 1
- 产品 2
- 产品 3
- 产品 10
- 产品 11
- 产品 12
可以解决这个问题吗?还是我被迫使用 0。
$product_names_array = array("Product 12","Product 11", "Product 10", "Product 1", "Product 2", "Product 3", );
foreach($product_names_array as $product_names_array_value) {
$product_number = preg_replace('/\D/s', '', $product_names_array_value);
$sorted_array[$product_number] = $product_names_array_value;
ksort($sorted_array);
}
$product_names_array = array("Product 12","Product 11", "Product 10", "Product 1", "Product 2", "Product 3");
natsort($product_names_array);
print_r($product_names_array);
Output:
Array
(
[3] => Product 1
[4] => Product 2
[5] => Product 3
[2] => Product 10
[1] => Product 11
[0] => Product 12
)
我是编程网站的新手,所以这可能是一个愚蠢的问题。我有包含数字的产品名称。这本身不是问题,Magento 的排序是。
Magento 排序如下:
- 产品 10
- 产品 11
- 产品 12
- 产品 1
- 产品 2
- 产品 3
我希望它像这样排序:
- 产品 1
- 产品 2
- 产品 3
- 产品 10
- 产品 11
- 产品 12
可以解决这个问题吗?还是我被迫使用 0。
$product_names_array = array("Product 12","Product 11", "Product 10", "Product 1", "Product 2", "Product 3", );
foreach($product_names_array as $product_names_array_value) {
$product_number = preg_replace('/\D/s', '', $product_names_array_value);
$sorted_array[$product_number] = $product_names_array_value;
ksort($sorted_array);
}
$product_names_array = array("Product 12","Product 11", "Product 10", "Product 1", "Product 2", "Product 3"); natsort($product_names_array); print_r($product_names_array); Output: Array ( [3] => Product 1 [4] => Product 2 [5] => Product 3 [2] => Product 10 [1] => Product 11 [0] => Product 12 )