如何根据基数对数组排序?

时间:2019-07-09 10:22:15

标签: php arrays sorting

我有一个数组,内容如下:

array (size=5)
  0 => 
    array (size=3)
      0 => string '1' (length=1)
      1 => string 'https://www.facebook.com' (length=24)
      2 => string '4' (length=1)    // order number
  1 => 
    array (size=3)
      0 => string '1' (length=1)
      1 => string 'https://www.twiiter.com' (length=23)
      2 => string '7' (length=1)   // order number
  2 => 
    array (size=3)
      0 => string '1' (length=1)
      1 => string 'https://www.instagram.com' (length=25)
      2 => string '9' (length=1)   // order number
  3 => 
    array (size=3)
      0 => string '1' (length=1)
      1 => string 'https://www.linkedin.com' (length=24)
      2 => string '2' (length=1)  // order number
  4 => 
    array (size=3)
      0 => string '1' (length=1)
      1 => string 'https://www.pinterest.com' (length=25)
      2 => string '1' (length=1)  // order number

我想根据上面代码中的数字对该数组进行排序。 (哪里有书面评论)。

我该怎么做?

到目前为止,我已经编写了以下代码,但是我不知道如何正确地编写它。

$arrMerge = array_merge($facebookURL, $twitterURL, $instagramURL, $linkedinURL, $pinterestURL);
$splitArr = array_chunk($arrMerge, 3);

2 个答案:

答案 0 :(得分:2)

您可以将array_multisortarray_column一起使用

array_multisort(array_column($arr, 2), SORT_ASC,$arr)

您可以根据需要使用SORT_ASCSORT_DESC

Live DEMO

答案 1 :(得分:1)

您可以使用usort

usort($data, function($a, $b) {
    return $a[2] - $b[2];
});

您可能还需要将结果类型转换为整数,因为它看起来像您的数据被视为字符串一样。

usort($data, function($a, $b) {
    return (int)$a[2] - (int)$b[2];
});

这也是this question的可能副本。