我有一个格式为
的数组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]“
之前有人遇到过这种情况,我现在坚持这个......
答案 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);