使用PHP将字符串值转换为数组并获取值

时间:2017-11-08 09:09:20

标签: php

我的$data会返回以下值。以下值的gettype()String

["0:12:23", 0.000000],["0:12:43", 0.000000],["0:13:03", 0.000000]

我想将字符串vlaues转换为数组。并且必须输出时间值"0:12:23" , "0:12:43" and "0:13:03"

如何使用php将字符串值转换为数组并仅获取时间值。

2 个答案:

答案 0 :(得分:3)

我希望您的输入是单字符串。所以请执行以下操作: -

<?php

$string = '["0:12:23", 0.000000],["0:12:43", 0.000000],["0:13:03", 0.000000]'; // i assume it's a single string
preg_match_all('/\d:\d{2}:\d{2}/',$string,$matches);

print_r($matches);

输出: - https://eval.in/895248

或者@deceze说如下所示使用json_decode("[$string]"): -

<?php
  $string = '["0:12:23", 0.000000],["0:12:43", 0.000000],["0:13:03", 0.000000]';
  $string_array=json_decode("[$string]");
  $time_array = array_column($string_array,0);
  print_r($time_array);
?>

输出: - https://eval.in/895251

参考: -

preg_match_all()

json_decode()

array_column()

答案 1 :(得分:2)

您可以使用json_decode将其转换为数组结构。并使用foreach循环过滤掉.try,

<?php
$string = '["0:12:23", 0.000000],["0:12:43", 0.000000],["0:13:03", 0.000000]';
$string_to_array=json_decode("[$string]");
foreach($string_to_array as $values){  
print_r($values[0]); 
}
?>