为嵌套数组分配变量并拆分它


assign variable for nested array and spliting it

我得到嵌套数组回复。它包含日期,时间和日期,我想打破它。我该怎么做呢?

这是我的回答

Array
(
    [code] => 202
    [message] => Accepted
    [data] => Array
        (
            [result] => Array
                (
                    [15:45~31-10-2016 Mon] => Array
                        (
                            [Sday] => 
                            [Ttime] => 15:45
                            [Smonth] => 

"[15:45~31-10-2016 Mon] => Array"如何分配变量以及如何将其分解为日期,日期和时间变量

正如Mohammad对你的问题的评论所提到的,

你应该使用preg_split函数

$str = key($array['data']['result']); // 15:45~31-10-2016 Mon
$res = preg_split("/[~'s]/", $str);
echo '<pre>'; print_r($res);
输出

: -

Array
(
    [0] => 15:45
    [1] => 31-10-2016
    [2] => Mon
)

如果结果数组中只有一个元素,则使用extractexplode从man数组中检索值:类似于-

$result = $array['data']['result'];
$date = key($result);
$day = extract($result[$date]);
var_dump($date); // 15:45~31-10-2016 Mon
var_dump($Ttime); // will output 15:45
$date = explode(' ', $date);
$dateString = substr($date[0], strpos($date[0], "{$Ttime}~") + 1); //31-10-2016
$week = $date[1]; // var_dump($week); will give `Mon`

给定:

$result = array(
    'code' => '202',
    'message' => 'Accepted',
    'data' => array(
        'result' => array(
            '15:45~31-10-2016 Mon' => array(
                'Sday' => '',
                'Ttime' => '15:45',
                'Smonth' => ''
            )
        )
    )
);

你可以这样做:

$data = $result['data']['result'];
$dateKey = key($data);
$dateString = preg_split("/[~'s]/", $dateKey);
$date = array(
    'day' => $dateString[2],
    'date' => $dateString[1],
    'time' => $dateString[0]
);
var_dump($date);

或:

$data = $result['data']['result'];
$dateKey = key($data);
$dateString = preg_replace("/[~'s]/", ' ', $dateKey);
$dateObj = DateTime::createFromFormat('H:i d-m-Y D', $dateString);
$date = array(
    'day' => $dateObj->format('D'),
    'date' => $dateObj->format('m-d-Y'),
    'time' => $dateObj->format('H:i')
);
var_dump($date);