Php 具有键/值对的自定义排序数组

Php 具有键/值对的自定义排序数组,php,Php,以下数组到达: Array ( [66-507cddcd16d9786abafccfa78b19acf8] => XL [64-507cddcd16d9786abafccfa78b19acf8] => medium [65-507cddcd16d9786abafccfa78b19acf8] => large [63-507cddcd16d9786abafccfa78b19acf8] => small ) 如何按大小升序排列数组的值,以保持

以下数组到达:

Array
(
    [66-507cddcd16d9786abafccfa78b19acf8] => XL
    [64-507cddcd16d9786abafccfa78b19acf8] => medium
    [65-507cddcd16d9786abafccfa78b19acf8] => large
    [63-507cddcd16d9786abafccfa78b19acf8] => small
)
如何按大小升序排列数组的值,以保持键/值关系?数组值可以是以下部分或全部值

Small
XXL
Medium
Large 
XL

如果您想按字母顺序对值排序,这就是它的用途。

您可以使用asort。我在php网站上复制了这个fomr

asort-对数组排序并维护索引关联


如果您的排序需要比以前建议的更复杂,请编写一个函数插入。

您需要使用
uasort

function sizeSorter($a, $b) {
    // customize as needed
    $comp = array_flip(array('xxxs', 'xxs', 'xs', 's', 'small', 'm', 'medium', 'l', 'large', 'xl', 'xxl', 'xxxl'));
    return $comp[strtolower($a)] - $comp[strtolower($b)];
}

uasort($array, 'sizeSorter');
实例:


请看codaddict对我对你另一个问题的回答的评论。事实上,你最好编辑你的另一个问题来包含这个,这样我也可以相应地调整我的答案。