如何将数组转换为字符串格式

时间:2011-08-05 09:17:04

标签: php arrays string arraylist

我有一个格式为

的数组
  

array(){[“2011-07-29”] => 39 [“2011-07-30”] => 39 [“2011-07-31”] => 39 [“2011-08-01”] => 40}

我需要将它转换为这样的字符串格式(下面是var_dump结果)

  

string(584)“[new Date(2011,07,29),39],[new Date(2011,07,30),39],[new Date(2011,07,31),39], [新日期(2011年,08年,01年),40]“

之前有人遇到过这种情况,我现在坚持这个......

4 个答案:

答案 0 :(得分:1)

<?php
    $a = Array("2011-07-29" => 39, "2011-07-30"=> 39, "2011-07-31"=> 39, "2011-08-01"=> 40);
    $sa = array();
    foreach($a as $k => $v){
        $sa[] = "[new Date(".preg_replace('/-/',', ',$k)."),$v]";
    }
    $s = implode(', ',$sa);
    var_dump( $s );
?>

编辑:改进以匹配@ Alvaro答案的更好功能(几乎相同 - 并首先回答),但更简单的字符串构建(我发现sprintf是一个不必要的抽象层)

<?php
    $input = array(
        '2011-07-29' => 39,
        '2011-07-30' => 39,
        '2011-07-31' => 39,
        '2011-08-01' => 40,
    );
    $aux = array();
    foreach($input as $date => $number){
        $aux[] = "[new Date(" . str_replace('-',', ',$date) . "),$number]";
    }
    $output = implode(', ', $aux);
    var_dump($input, $output);
?>

答案 1 :(得分:0)

首先,您需要循环数组并使用parse_date解析每个日期。以可用格式提供日期后,您可以构建新字符串。

答案 2 :(得分:0)

虽然不是直接的方式。尝试在阵列上使用json_encode()并按下输出。

答案 3 :(得分:0)

我能想到的最简单的方式:

<?php

$input = array(
    '2011-07-29' => 39,
    '2011-07-30' => 39,
    '2011-07-31' => 39,
    '2011-08-01' => 40,
);

$aux = array();

foreach($input as $date => $number){
    $aux[] = sprintf('[new Date(%s),%d]', str_replace('-', ',', $date), $number);
}

$output = implode(', ', $aux);

var_dump($input, $output);