Php 如何将数组转换为字符串格式
我有一个数组的格式 数组({“2011-07-29”]=>39[“2011-07-30”]=>39[“2011-07-31”]=>39[“2011-08-01”]=>40} 我需要将它转换成如下的字符串格式(下面是一个var_转储结果) 字符串(584)“[新日期(2011,07,29),39],[新日期(2011,07,30),39],[新日期(2011,07,31),39],[新日期(2011,08,01),40]”Php 如何将数组转换为字符串格式,php,arrays,string,arraylist,Php,Arrays,String,Arraylist,我有一个数组的格式 数组({“2011-07-29”]=>39[“2011-07-30”]=>39[“2011-07-31”]=>39[“2011-08-01”]=>40} 我需要将它转换成如下的字符串格式(下面是一个var_转储结果) 字符串(584)“[新日期(2011,07,29),39],[新日期(2011,07,30),39],[新日期(2011,07,31),39],[新日期(2011,08,01),40]” 如果以前有人遇到过这个问题,我现在就要面对它了…首先,您需要在数组上循环,
如果以前有人遇到过这个问题,我现在就要面对它了…首先,您需要在数组上循环,并使用
parse_date
解析每个日期。一旦将日期设置为可用格式,就可以构建新字符串。尽管这不是直接的方法。尝试在数组上使用json\u encode()
,并按摩输出。我能想到的最简单的方法:
<?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);
编辑:经过改进以匹配@Alvaro答案的更好特性(实际上完全相同,而且是先回答的),但使用更简单的字符串构建(我发现sprintf是一个不必要的抽象层)
<?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 );
?>
<?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);
?>