php - PHP使用特定字母顺序对混合数组值进行排序
问题描述
我有这个数组:
$po = array (
5 => '8',
6 => '10',
7 => '12',
8 => '41',
12 => '42',
9 => '43',
10 => '44',
11 => '45',
1 => 'L',
0 => 'M',
4 => 'S',
2 => 'XL',
3 => 'XXL',
13 => 'XXS'
)
我需要这样排序:
- 所有数字第一个 asc
- 按此顺序的所有信件:
$order = ['XXS','XS','S','M','L','XL','XXL'];
到目前为止,我从互联网示例中获取了这段代码:
$sort_first = array('XXS','XS','S','M','L','XL','XXL');
usort($poval, function ($a, $b) use ($sort_first) {
$posA = array_search($a, $sort_first);
$posB = array_search($b, $sort_first);
return $posA - $posB;
});
但数值不行..这是重新排序后的导出:
$po = array (
0 => '8',
1 => '45',
2 => 'XXS',
3 => '43',
4 => '44',
5 => '42',
6 => '10',
7 => '12',
8 => '41',
9 => 'S',
10 => 'M',
11 => 'L',
12 => 'XL',
13 => 'XXL'
)
我怎样才能做到这一点?谢谢你的时间
解决方案
如果我理解正确,您可以遍历您的数组并将其拆分为两个单独的数组 - 一个用于数字值,一个用于非数字值 - 然后将它们重新合并在一起,但我无法告诉您这是否是有效的 PHP 语法.
推荐阅读
- laravel-5 - 为什么 Graphql 无法通过使用变量获取 args 但在使用静态 var 时有效
- c# - 如何在 c# 中制作工厂模式以选择我想要的 GUI:WPF 或控制台?
- php - SQL 中的联接计数
- sql - 创建表时行的顺序发生变化
- html - HTML 电子邮件签名 Outlook 2016 中的视网膜图像
- ruby-on-rails - Rspec:Capybara 服务器映射一个目录
- ios - Kontakt.io iOS - 按名称识别信标
- mysql - Node Js (Sequelize) - 未处理的拒绝 SequelizeDatabaseError:“字段列表”中的未知列“id”
- javascript - 在 Internet Explorer 上悬停表格标题时不显示工具提示
- c# - 有没有办法可以从一些文本和参数列表中创建一个字符串?