str_replace如何使用数组?

时间:2011-07-18 20:16:50

标签: php arrays str-replace json

为什么不使用str_replace?我该怎么办?

$date = $this->convert_date->JalaliToGregorian('1390','04','20'); ->> this output with json_encode -> [2011,7,11]
$da =  str_replace(",","/",$date);
echo json_encode ($da) ->> output  Array ["2011","7","11"]

4 个答案:

答案 0 :(得分:1)

逗号不在数组中。这是由json_encode添加的。试试implode("/", $date);这将使用/作为粘合剂组合三个数组元素。

Implode Documentation

答案 1 :(得分:1)

json_encode返回一个表示对象的JSON表示的字符串。在Arrays的情况下,这是一个用逗号包围的逗号描述列表。如果您希望用其他内容描述数组,那么您应该使用implode($glue,$pieces)

implode("/", $date);

作为一个陷阱 - implode将根据键插入顺序工作,所以你可能想先使用kso​​rt:

$a = array(1=>1, 0=>0); 
echo implode(",", $a); // outputs 1,0
ksort( $a );
echo implode(",", $a); // outputs 0,1

答案 2 :(得分:1)

我不完全确定你的结果是什么。 如果你希望你的脚本输出'2011/7/11',那么你应该使用implode()而不是str_replace(因为$ date不是字符串,而是数组)。 所以

$ da = implode('/',$ date);

会给你结果

答案 3 :(得分:1)

我不确定,我是否理解正确,但这可能是一个解决方案:

echo implode('/', $date);

这会将$date数组的元素与/粘贴到此字符串中:

  

2011年7月11日

请参阅CodePad.org snippet以获取证明。