Php 如何在数组中进行更改并保存它
我有一系列的字幕,有开始时间、结束时间和我想修改的文本 这是我的阵列Php 如何在数组中进行更改并保存它,php,arrays,Php,Arrays,我有一系列的字幕,有开始时间、结束时间和我想修改的文本 这是我的阵列 Array ( [0] => stdClass Object ( [start_time] => 00:00:01,280 [end_time] => 00:00:03,109 [text] => Previously on "Pretty Little Liars..." ) [1
Array
(
[0] => stdClass Object
(
[start_time] => 00:00:01,280
[end_time] => 00:00:03,109
[text] => Previously on "Pretty Little Liars..."
)
[1] => stdClass Object
(
[start_time] => 00:00:03,110
[end_time] => 00:00:04,780
[text] => Lesli? What are you doing in Rosewood?
)
[2] => stdClass Object
(
[start_time] => 00:00:04,790
[end_time] => 00:00:06,949
[text] => You mention my name to anyone ever again
)
[3] => stdClass Object
(
[start_time] => 00:00:06,950
[end_time] => 00:00:08,219
[text] => and you'll live to regret it.
)
[4] => stdClass Object
(
[start_time] => 00:00:08,220
[end_time] => 00:00:09,749
[text] => (Aria): We went to a junkyard to take some pictures
)
);
我想换衣服
起始时间
在endTime中结束时间
数据中的文本
您可以在开始时间和结束时间中看到此格式(00:00:01280)时间
结束时间我要更改此时间,以毫秒为单位,我已经更改了
创建一个将此时间转换为毫秒的函数
我希望您理解我想要在数组中更改的内容更改后,我希望我的数组如下所示
结果
Array
(
[0] => stdClass Object
(
[startTime] => 324324324
[end_time] => 234234234
[data] => Previously on "Pretty Little Liars..."
)
[1] => stdClass Object
(
[startTime] => 234234334
[endTime] => 34234234
[data] => Lesli? What are you doing in Rosewood?
)
[2] => stdClass Object
(
[startTime] => 32423423
[endTime] => 23423423
[data] => You mention my name to anyone ever again
)
[3] => stdClass Object
(
[startTime] => 4345345345
[endTime] => 34234234234
[data] => and you'll live to regret it.
)
[4] => stdClass Object
(
[startTime] => 342342343
[endTime] => 4543534534
[data] => (Aria): We went to a junkyard to take some pictures
)
);
很抱歉,我在startTime和endTime中输入了错误的毫秒,请说明
我希望我已经描述了我想要什么。谢谢您可以使用如下自定义功能:
function convertKeysToCamelCase($apiResponseArray) {
$keys = array_map(function ($i) use (&$apiResponseArray) {
if (is_array($apiResponseArray[$i]))
$apiResponseArray[$i] = $this->convertKeysToCamelCase($apiResponseArray[$i]);
$parts = explode('_', $i);
return array_shift($parts) . implode('', array_map('ucfirst', $parts));
}, array_keys($apiResponseArray));
return array_combine($keys, $apiResponseArray);
}
您可以使用自定义函数,如:
function convertKeysToCamelCase($apiResponseArray) {
$keys = array_map(function ($i) use (&$apiResponseArray) {
if (is_array($apiResponseArray[$i]))
$apiResponseArray[$i] = $this->convertKeysToCamelCase($apiResponseArray[$i]);
$parts = explode('_', $i);
return array_shift($parts) . implode('', array_map('ucfirst', $parts));
}, array_keys($apiResponseArray));
return array_combine($keys, $apiResponseArray);
}
如果您是从数据库获取此信息的,您可以通过更改
选择
查询来简化此操作,否则请使用下面的代码,其中$input
是此处显示的数组,$result
是您所需的数组,如果您要更改当前数组,请将$result
替换为$input
使用数组映射()
如果您是从数据库获取此信息的,您可以通过更改
选择
查询来简化此操作,否则请使用下面的代码,其中$input
是此处显示的数组,$result
是您所需的数组,如果您要更改当前数组,请将$result
替换为$input
使用数组映射()
您可能希望在不同的字幕格式之间进行转换。有更简单的方法做到这一点 但是,如果您仍然希望将时间作为(浮动): 它将打印:
Array
(
[0] => Array
(
[start] => 137.44
[end] => 140.375
[lines] => Array
(
[0] => Senator, we're making
[1] => our final approach into Coruscant.
)
)
[1] => Array
(
[start] => 140.476
[end] => 142.501
[lines] => Array
(
[0] => Very good, Lieutenant.
)
)
)
您可能希望在不同的字幕格式之间进行转换。有更简单的方法做到这一点 但是,如果您仍然希望将时间作为(浮动): 它将打印:
Array
(
[0] => Array
(
[start] => 137.44
[end] => 140.375
[lines] => Array
(
[0] => Senator, we're making
[1] => our final approach into Coruscant.
)
)
[1] => Array
(
[start] => 140.476
[end] => 142.501
[lines] => Array
(
[0] => Very good, Lieutenant.
)
)
)
我想替换你在文本中看到的另一个东西文本中有\“正斜杠和双引号我想用*staerick替换它们我已经应用了str \“替换('\','*',$v->文本),但它不起作用我想替换你在文本中看到的另一个东西\“文本中的正斜杠和双引号我想用*staerick替换它们,我已经应用了str_replace(“\”、“*”、$v->text),但它不起作用
$array = Subtitles::load('subtitles.srt')->getInternalFormat();
print_r($array);
Array
(
[0] => Array
(
[start] => 137.44
[end] => 140.375
[lines] => Array
(
[0] => Senator, we're making
[1] => our final approach into Coruscant.
)
)
[1] => Array
(
[start] => 140.476
[end] => 142.501
[lines] => Array
(
[0] => Very good, Lieutenant.
)
)
)