如何使用数组的所有偶数索引元素作为所有奇数元素的键(PHP)

时间:2012-11-13 16:55:16

标签: php arrays

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

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;

2 个答案:

答案 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];
}
?>

我担心我没有对此进行测试,但它应该有效。