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.
                )
        )
)