1

我有一个看起来像这样的数组:

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 => $number。

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;
4

2 回答 2

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",
    ...
)
于 2012-11-13T17:01:22.743 回答
4
<?php
$output = array();
for($i = 0; $i < count($data_array); $i++) {
    $output[$data_array[$i]] = $data_array[++$i];
}
?>

恐怕我还没有测试过,但它应该可以工作。

于 2012-11-13T16:59:47.913 回答