我有一个看起来像这样的数组:
array(10) {
[0]=>
string(10) "2012-11-03"
[1]=>
string(1) "1"
[2]=>
string(10) "2012-11-04"
[3]=>
string(1) "3"
[4]=>
string(10) "2012-11-05"
[5]=>
string(1) "2"
[6]=>
string(10) "2012-11-06"
[7]=>
string(1) "7"
[8]=>
string(10) "2012-11-07"
[9]=>
string(1) "4"
}
我想从这里得到一个新的多维数组,它有5个元素,每个元素看起来像这样:$ date => $数。
array(5) {
[0]=> array(2012-11-03 => 1)
[1]=> array(2012-11-04 => 3)
[2]=> array(2012-11-05 => 2)
[3]=> array(2012-11-06 => 7)
[4]=> array(2012-11-07 => 4)
}
我想使用日期作为跟随它们的值的关键。 (我最终想在折线图上绘制这些值,其中x轴具有日期,y具有值)
我可以编写什么样的(foreach?)循环来执行此操作?
我从以下代码行中获取此数组:
$data = "$start_date\n$value\n";
file_put_contents($id . '.csv', $data, FILE_APPEND);
$data = file_get_contents($id . '.csv');
$data_array = explode("\n", trim($data, "\n"));
var_dump($data_array); exit;
答案 0 :(得分:5)
我假设您的数组包含偶数个元素,如预期的那样。
您可以使用以下代码段:
<?php
$newArray = array();
for ($i = 0; $i < count($data_array); $i += 2) {
$newArray[$data_array[$i]] = $data_array[$i + 1];
}
?>
^上面的代码说我们从0
的索引$data_array
开始,这是一个日期。它在偶数元素的newArray
中生成一个键,并将下一个奇数元素的值附加到此键。该数组将如下所示:
Array(
'2012-11-03' => "1",
'2012-11-04' => "3",
'2012-11-05' => "2",
...
)
答案 1 :(得分:4)
<?php
$output = array();
for($i = 0; $i < count($data_array); $i++) {
$output[$data_array[$i]] = $data_array[++$i];
}
?>
我担心我没有对此进行测试,但它应该有效。