首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何将带有值的PHP数组排序为字符串,这些字符串由“-”分隔

如何将带有值的PHP数组排序为字符串,这些字符串由“-”分隔
EN

Stack Overflow用户
提问于 2018-05-08 13:40:45
回答 3查看 220关注 0票数 0

我有以下数组:

代码语言:javascript
运行
复制
array (
  0 => '4-0',
  1 => '4-1',
  2 => '4-2',
  3 => '4-3',
  4 => '4-4',
  5 => '4-5',
  6 => '4-6',
  7 => '4-7',
  8 => '4-8',
  9 => '4-9',
  10 => '4-10',
  11 => '4-11',
  12 => '4-12',
  13 => '4-13',
  14 => '4-14',
  15 => '4-15',
  16 => '4-16',
  17 => '8-0',
  18 => '9-0',
  19 => '2-0',
  20 => '5-0',
  21 => '7-1',
)

我想要的是由value订购value。因此,array19的值应该是第一个值,array18值应该是最后一个值。我尝试过一些排序函数,比如asort(),但是它并没有做我想做的事情。

asort()

代码语言:javascript
运行
复制
array (
  0 => '2-0',
  1 => '4-0',
  2 => '4-1',
  3 => '4-10',
  4 => '4-11',
  5 => '4-12',
  6 => '4-13',
  7 => '4-14',
  8 => '4-15',
  9 => '4-16',
  10 => '4-2',
  11 => '4-3',
  12 => '4-4',
  13 => '4-5',
  14 => '4-6',
  15 => '4-7',
  16 => '4-8',
  17 => '4-9',
  18 => '5-0',
  19 => '7-1',
  20 => '8-0',
  21 => '9-0',
)

对此是否有特定的PHP函数,或者我是否应该实现自己的算法?有什么想法吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-05-08 13:46:35

可以将sort()SORT_NATURAL标志一起使用:

代码语言:javascript
运行
复制
<?php
$array = array (
  0 => '4-0',
  1 => '4-1',
  2 => '4-2',
  3 => '4-3',
  4 => '4-4',
  5 => '4-5',
  6 => '4-6',
  7 => '4-7',
  8 => '4-8',
  9 => '4-9',
  10 => '4-10',
  11 => '4-11',
  12 => '4-12',
  13 => '4-13',
  14 => '4-14',
  15 => '4-15',
  16 => '4-16',
  17 => '8-0',
  18 => '9-0',
  19 => '2-0',
  20 => '5-0',
  21 => '7-1',
);

sort( $array, SORT_NATURAL );
print_r( $array );

输出:

代码语言:javascript
运行
复制
Array
(
    [0] => 2-0
    [1] => 4-0
    [2] => 4-1
    [3] => 4-2
    [4] => 4-3
    [5] => 4-4
    [6] => 4-5
    [7] => 4-6
    [8] => 4-7
    [9] => 4-8
    [10] => 4-9
    [11] => 4-10
    [12] => 4-11
    [13] => 4-12
    [14] => 4-13
    [15] => 4-14
    [16] => 4-15
    [17] => 4-16
    [18] => 5-0
    [19] => 7-1
    [20] => 8-0
    [21] => 9-0
)
票数 2
EN

Stack Overflow用户

发布于 2018-05-08 17:07:41

您可以使用natsort http://php.net/manual/en/function.natsort.php。它将数组内容排序为字符串。

代码语言:javascript
运行
复制
natsort($your_array)
票数 0
EN

Stack Overflow用户

发布于 2018-05-08 13:54:13

它的简单,只是排序功能将完成这项工作。

代码语言:javascript
运行
复制
sort($array);

请注意,参数是按引用传递的,而不是按值传递的。

代码语言:javascript
运行
复制
<?php
$array=array (
  0 => '4-0',
  1 => '4-1',
  2 => '4-2',
  ....
  ....
);
sort($array);
print_r($array);
?>

会给出同样的答案

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50235074

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档