【发布时间】:2017-08-01 10:41:06
【问题描述】:
我有任意数量的数组,它们都包含相同格式的数据。有 2 个单独的 for 循环遍历两个单独的 SQL 查询结果并将它们添加到 2 个单独的数组中。
一旦我获得了两个数组中的所有信息,我将遍历它们并将它们连接在一起以形成一个更长的数组。
但是,当我将此数组写入 csv 文件时,信息需要在数组中按顺序排列,以便将其写入 csv 文件。我该怎么做?
数组 1
[1] => Array
(
[0] => 2017-07-21 00:00:00
[1] => Foo
[2] => Bar
[3] => 32.63
[4] => 18.36
[5] => 98.46
)
[2] => Array
(
[0] => 2017-07-21 00:00:00
[1] => Foo
[2] => Bar
[3] => 29.74
[4] => 148.68
[5] => 178.42
)
//etc
数组 2
[1] => Array
(
[0] => RTGH707321222
[1] => THIS
[2] => IS
[3] => TEXT
)
[2] => Array
(
[0] => RTGH707321220
[1] => SOME
[2] => WORDS
[3] => HERE
)
//etc
将数组连接在一起
array_walk($array2, function($values, $key) use (&$array1) {
$array1[$key] = array_merge($array1[$key], $values);
} );
数组合并后 - print_r($array1)
[1] => Array
(
[0] => 2017-07-21 00:00:00
[1] => Foo
[2] => Bar
[3] => 32.63
[4] => 18.36
[5] => 98.46
[6] => RTGH707321222
[7] => THIS
[8] => IS
[9] => TEXT
)
[2] => Array
(
[0] => 2017-07-21 00:00:00
[1] => Foo
[2] => Bar
[3] => 29.74
[4] => 148.68
[5] => 178.42
[6] => RTGH707321220
[7] => SOME
[8] => WORDS
[9] => HERE
)
//etc
所以这工作正常。但是,我想移动其中一些索引,以便它们处于不同的顺序。我研究了 array_splice() 但我不确定这是否是正确的使用方法。
我想要的样子
[1] => Array
(
[0] => 2017-07-21 00:00:00
[1] => RTGH707321222
[2] => TEXT
[3] => THIS
[4] => 18.36
[5] => 98.46
[6] => Foo
[7] => 32.63
[8] => IS
[9] => Bar
)
//etc
如您所见,所有信息仍然相同。这些值刚刚被移动到不同的索引。如何对数组进行排序,使其看起来像上面那样。谁能指出我正确的方向?谢谢。
【问题讨论】:
-
你应用什么逻辑来改变你的索引
-
我还没有改变任何东西。这就是我需要帮助的原因
标签: php arrays sorting for-loop