将多个字符串排序为一个订单

时间:2016-09-08 15:19:25

标签: php arrays sorting

我的php代码需要帮助

我有字符串数组。它包含多个值。例如' XXL'' X',' 1',' 1.5',' 2',&# 39; 3',' T',' 1K',' 1.5K',' 5K','成人和# 39;,' One Size'。

现在我希望它按如下方式排序。 2T,3T,4T,YXXS,YXS,YS,YM,YL,YXL,XXS,XS,S,M,L,XL,XXL,XXXL,WXXS,WXS,WS,WM,WL,WXL,WXXL,Youth,成人,One Size,8K,8.5K,9K,9.5K,10K,10.5K,11K,11.5K 12K,12.5K,13K,13.5K,1,1.5,2,2.5,3,3.5,4,4.5, 5,5.5,6,6.5,7,7.5,8,8.5,9,9.5,10,10.5,11,11.5,12,12.5,13,​​13.5,14,14.5,15,五人制足球

我需要一个排序功能或算法来解决这个问题

1 个答案:

答案 0 :(得分:1)

您可以使用array_intersect,因为实际上没有合理的方法来对这些选项进行排序。

<?php

$sort_order = array('2T', '3T', '4T', 'YXXS', 'YXS', 'YS', 'YM', 'YL', 'YXL', 'XXS', 'XS', 'S', 'M', 'L', 'X', 'XL', 'XXL', 'XXXL', 'WXXS', 'WXS', 'WS', 'WM', 'WL', 'WXL', 'WXXL', 'Youth', 'Adult', 'One Size', '8K', '8.5K', '9K', '9.5K', '10K', '10.5K', '11K', '11.5K 12K', '12.5K', '13K', '13.5K', '1', '1.5', '2', '2.5', '3', '3.5', '4', '4.5', '5', '5.5', '6', '6.5', '7', '7.5', '8', '8.5', '9', '9.5', '10', '10.5', '11', '11.5', '12', '12.5', '13', '13.5', '14', '14.5', '15', 'Futsal');
$sizes      = array('XXL', 'X', '1', '1.5','2', '3', 'T', '1K','1.5K','5K','Adult','One Size');

$sorted_sizes = array_intersect($sort_order, $sizes);

print_r($sorted_sizes);

?>