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 に答える