PHP:将数组格式转换为另一种格式

时间:2014-08-15 09:39:15

标签: php arrays

我的数组输出如下: -

Array
(
    [0] => 25-08-2014
    [1] => 26-08-2014
    [2] => 27-08-2014
    [3] => 28-08-2014
)

我需要将其转换为: -

$duration = array("25/08/2014", "26/08/2014", "27/08/2014");

我尝试在此功能中使用它: -

if (in_array($dateOutput, $duration))

我该怎么做?

3 个答案:

答案 0 :(得分:0)

如果我理解正确,您只想将-更改为/

然后你可以用这个:

<?php
$dates = array("25-08-2014", "26-08-2014", "27-08-2014");
$total = count($dates);
for( $i=0; $i<$total; $i++) {
     $dates[$i] = str_replace( '-', '/', $dates[$i] );
}
print_r( $dates );
?>

另一种方法是使用array_map()功能:

<?php
function swapIt($value) {
    return str_replace( '-', '/', $value );
}

$dates = array("25-08-2014", "26-08-2014", "27-08-2014");
$newDates = array_map( "swapIt", $dates );
print_r( $newDates );
?>

答案 1 :(得分:0)

尽管(正如许多评论者所说),你应该展示你的尝试。请参阅以下解决方案:

$arr = array(
    "25-08-2014", 
    "26-08-2014", 
    "27-08-2014"
);
function reformat($date_string)
{
    return str_replace('/', '-', $date_string);
}
$arr_editted = array_map('reformat', $arr);

这将为您提供所需的价值。您也可以使用array_map的匿名函数;但由于我不确定你的PHP版本,你应该使用它。

PHP array_map

答案 2 :(得分:0)

你需要做这样的事情:

$dateOutputs = array("25-08-2014", "26-08-2014", "27-08-2014", "28-08-2014");
$duration = array("25/08/2014", "26/08/2014", "27/08/2014");

foreach ($dateOutputs as $dateOutput) {
    $neededDate = date('d/m/Y', strtotime($dateOutput));
    if (in_array($neededDate, $duration)) {
        // do something here
    }
}

希望它有所帮助。