Php 在插入到数据库之前对数组进行排序

Php 在插入到数据库之前对数组进行排序,php,arrays,sorting,Php,Arrays,Sorting,我不想打一匹死马,但这是事实。我有一个Apache2服务器在运行,我用mysql为输入和输出创建了自己的php/html表单。很好用,我喜欢 我的问题是我有一个巨大的数组,我想插入到MySQL中,但需要先对它进行排序(0对每个子数组进行排序的简单方法: $data = array( array(29,11,15,30,33), array(30,11,25,18,02), array(12,15,08,06,18), array(17,20,03,21,02),

我不想打一匹死马,但这是事实。我有一个Apache2服务器在运行,我用mysql为输入和输出创建了自己的php/html表单。很好用,我喜欢


我的问题是我有一个巨大的数组,我想插入到MySQL中,但需要先对它进行排序(0对每个子数组进行排序的简单方法:

$data = array(
    array(29,11,15,30,33),
    array(30,11,25,18,02),
    array(12,15,08,06,18),
    array(17,20,03,21,02),
    array(26,27,12,30,11),
    array(05,25,34,11,16),
    array(29,11,06,30,14),
    array(05,26,12,18,33),
    array(23,28,05,22,09),
    array(05,36,31,32,27),
    array(02,06,03,05,14)
);

foreach($data as &$value){ // Mind the & byref value
    sort($value);
}

var_dump($data);
// $data is now sorted over here
输出:

array(11) {
  [0]=>
  array(5) {
    [0]=>
    int(11)
    [1]=>
    int(15)
    [2]=>
    int(29)
    [3]=>
    int(30)
    [4]=>
    int(33)
  }
  [1]=>
  array(5) {
    [0]=>
    int(2)
    [1]=>
    int(11)
    [2]=>
    int(18)
    [3]=>
    int(25)
    [4]=>
    int(30)
  }
  [2]=>
  array(5) {
    [0]=>
    int(0)
    [1]=>
    int(6)
    [2]=>
    int(12)
    [3]=>
    int(15)
    [4]=>
    int(18)
  }
  [3]=>
  array(5) {
    [0]=>
    int(2)
    [1]=>
    int(3)
    [2]=>
    int(17)
    [3]=>
    int(20)
    [4]=>
    int(21)
  }
  [4]=>
  array(5) {
    [0]=>
    int(11)
    [1]=>
    int(12)
    [2]=>
    int(26)
    [3]=>
    int(27)
    [4]=>
    int(30)
  }
  [5]=>
  array(5) {
    [0]=>
    int(5)
    [1]=>
    int(11)
    [2]=>
    int(16)
    [3]=>
    int(25)
    [4]=>
    int(34)
  }
  [6]=>
  array(5) {
    [0]=>
    int(6)
    [1]=>
    int(11)
    [2]=>
    int(14)
    [3]=>
    int(29)
    [4]=>
    int(30)
  }
  [7]=>
  array(5) {
    [0]=>
    int(5)
    [1]=>
    int(12)
    [2]=>
    int(18)
    [3]=>
    int(26)
    [4]=>
    int(33)
  }
  [8]=>
  array(5) {
    [0]=>
    int(0)
    [1]=>
    int(5)
    [2]=>
    int(22)
    [3]=>
    int(23)
    [4]=>
    int(28)
  }
  [9]=>
  array(5) {
    [0]=>
    int(5)
    [1]=>
    int(27)
    [2]=>
    int(31)
    [3]=>
    int(32)
    [4]=>
    int(36)
  }
  [10]=>
  &array(5) {
    [0]=>
    int(2)
    [1]=>
    int(3)
    [2]=>
    int(5)
    [3]=>
    int(6)
    [4]=>
    int(14)
  }
}
编辑

或者像@JREAM suggest一样,您可以使用
array\u walk

array_walk($data, sort);

两个问题:(1)按什么标准排序?(2)为什么它需要在进入MySQL之前进行排序?这意味着您的数据库设计有问题。这是源数据吗?您希望每个单独子数组中的元素排序,还是子数组在$data范围内排序?这是一个非常模糊的问题……我需要对每个集合进行升序排序,以维护pa的MySQL查询模式ttern匹配。如果有意义的话。非常好。我想对我来说太简单了。我感谢你的帮助。这可能是最简单的方法。我在玩数组(multisort)和数组(walk:),也可能,发布了如何使用它。
array_walk($data, sort);