如何手动使用内爆函数?

时间:2012-09-17 07:07:20

标签: php

我的数组包含日期$a1[0]$a1[1]$a1[2]年我希望结果为年/日/月给我一个解决方案。

以下是我的代码

<?php
  $a1 = array("01","10","2012");
  $result = implode("/",$a1);
  print $result;
?>

这会打印01/10/2012,但我想要这个结果2012/01/10。如何使用implode函数手动绘制数组?

我怎样才能将第一年的第二天和第三年作为第三天?

4 个答案:

答案 0 :(得分:1)

您可以像这样使用array_reverse

$result = implode("/", array_reverse($a1));

这将以相反的顺序创建一个新数组。

答案 1 :(得分:1)

你不能单独使用implode,如果你正好拥有这种模式(元素顺序被反转)使用这段代码(YYYY / MM / DD):

$a1 = array("01", "10", "2012");
$result = implode("/", array_reverse($a1));
print $result;

否则使用正则表达式(YYYY / MM / DD):

$a1 = array("01", "10", "2012");
$result = preg_replace('/(\d{2})\/(\d{2})\/(\d{4})/', '$3/$2/$1', implode("/", $a1));
print $result;

如果您需要格式(YYYY / DD / MM),请使用以下格式:

$a1 = array("01", "10", "2012");
$result = preg_replace('/(\d{2})\/(\d{2})\/(\d{4})/', '$3/$1/$2', implode("/", $a1));
print $result;

答案 2 :(得分:1)

使用mktime功能。如果你有一个$ timestamp,你可以使用日期函数格式化:

$timestamp = mktime(0, 0, 0, $a1[1], $a1[0], $a1[2]);
echo date('y/m/d', $timestamp);

答案 3 :(得分:0)

您也可以使用循环(手动内爆):

$a1 = array("01","10","2012");
$a1_length = sizeof($a1);
$date = '';
for ($i = $a1_length; $i > 0; $i--) {
    $date .= $a1[$i] . '/';
}
$date = rtrim($date, '/');

echo $date;