php - 数组按第一个值排序

标签 php arrays sorting

这是我当前的数组

Array
(
    [0] => [10,13],
    [1] => [11,15],
    [2] => [12,7],
    [3] => [1,0],
    [4] => [2,0],
    [5] => [3,0],
    [6] => [4,0],
    [7] => [5,0],
    [8] => [6,0],
    [9] => [7,0],
    [10] => [8,0],
    [11] => [9,0]
);

我想按值(逗号前的值)对这个数组进行排序。
结果应该是这样的:

Array
(    
    [1] => [1,0],
    [2] => [2,0],
    [3] => [3,0],
    [4] => [4,0],
    [5] => [5,0],
    [6] => [6,0],
    [7] => [7,0],
    [8] => [8,0],
    [9] => [9,0],
    [10] => [10,13],
    [11] => [11,15],
    [12] => [12,7]
);

在 PHP 中可以吗?

最佳答案

选项 1:如果二维数组试试这个

$data = array();
$data[0] = array(10, 13);
$data[2] = array(11, 15);
$data[3] = array(12, 7);
$data[4] = array(1, 0);
$data[5] = array(2, 0);
$data[6] = array(3, 0);
$data[7] = array(4, 0);
$data[8] = array(5, 0);
$data[9] = array(6, 0);
$data[10] = array(7, 0);
$data[11] = array(8, 0);
$data[12] = array(9, 0);


echo "<pre>";
//print_r($data);
array_multisort($data);
print_r($data);
echo "</pre>";
?>

输出

Array
(
[0] => Array
    (
        [0] => 1
        [1] => 0
    )

[1] => Array
    (
        [0] => 2
        [1] => 0
    )

[2] => Array
    (
        [0] => 3
        [1] => 0
    )

[3] => Array
    (
        [0] => 4
        [1] => 0
    )

[4] => Array
    (
        [0] => 5
        [1] => 0
    )

[5] => Array
    (
        [0] => 6
        [1] => 0
    )

[6] => Array
    (
        [0] => 7
        [1] => 0
    )

[7] => Array
    (
        [0] => 8
        [1] => 0
    )

[8] => Array
    (
        [0] => 9
        [1] => 0
    )

[9] => Array
    (
        [0] => 10
        [1] => 13
    )

[10] => Array
    (
        [0] => 11
        [1] => 15
    )

[11] => Array
    (
        [0] => 12
        [1] => 7
    )
)

选项 2:如果一维阵列尝试这个

$data = array();
$data[0] = "10,13";
$data[2] = "11,15";
$data[3] = "12,7";
$data[4] = "1,0";
$data[5] = "2,0";
$data[6] = "3,0";
$data[7] = "4,0";
$data[8] = "5,0";
$data[9] = "6,0";
$data[10] = "7,0";
$data[11] = "8,0";
$data[12] = "9,0";

echo "<pre>";
//print_r($data);
echo "</pre>";

function dataSort($data){
    $data_temp =array();
    foreach($data as $item){
        $data_temp[] = explode(",",$item);
    }
    array_multisort($data_temp);

    $data =array();
    foreach($data_temp as $item){
        $data[] = $item[0].",".$item[1];
    }
    return $data;
}
$data  = dataSort($data); 
print_r($data);

输出

Array
(
   [0] => 1,0
   [1] => 2,0
   [2] => 3,0
   [3] => 4,0
   [4] => 5,0
   [5] => 6,0
   [6] => 7,0
   [7] => 8,0
   [8] => 9,0
   [9] => 10,13
   [10] => 11,15
   [11] => 12,7
)

关于php - 数组按第一个值排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20755404/

相关文章:

php query_posts orderby=random 导致 css 中断

php - 在 Windows 上安装后无法运行 pear 命令

Python Dict() 根据日期时间排序

java - 在带有 JDBC 驱动程序的 Java 中使用准备好的语句和变量绑定(bind) Order By

c - 列出整数并放入数组中

php - WooCommerce 中标题由字母和数字组成时的自定义排序产品

PHP 何时使用 filter_var 而不是内置 php 函数

php - 当我通过表单获取方法发送时,url 上的 utf-8 字符串出现问题

Java - 图形像素未正确更新?

python - 是否可以在 Django 模型中存储数组?