如何在不改变php中数组格式的情况下更改数组键值


How to chage array key value without change array formate in php

您能解释一下如何将一个数组值更改为第二个值吗。

请参阅以下示例。

第一个阵列

Array
(
    [20239802] => one test
    [20239801] => two testttttt
)

第二个阵列

Array (
    [content] => Array (
        [0] => Array (
            [content_pack_id] => 10002
            [content_pack_name] => 100 Days Of Love-FLA
            [image_path] => Array ( [0] => pack_image_10002_width. )
            [content_image_path] => Array ( [imgjpeg80] => http://content.jpg )
            [content_id] => 20239802
            [track] => Lede Inthati Santhosham
            [duration] => 0
        )
        [1] => Array (
            [content_pack_id] => 10003
            [content_pack_name] => 1001 fdfdf 
            [image_path] => Array ( [0] => pack_image_10002_width. )    
            [content_image_path] => Array ( [imgjpeg80] => http://content.jpg )    
            [content_id] => 20239801
            [track] => Lede Inthati Santhosham
            [duration] => 0
        )
    )
    [autoshuffle_pack] => no
)

如果第一阵列[20239802]与第二阵列[content_id] 匹配,我们需要替换第二阵列中的[track]

需要输出:-

Array
(
    [content] => Array
        (
            [0] => Array
                (
                    [content_pack_id] => 10002
                    [content_pack_name] => 100 Days Of Love-FLA
                    [image_path] => Array
                        (
                            [0] => pack_image_10002_width.
                        )
                    [content_image_path] => Array
                        (
                            [imgjpeg80] => http://content.jpg
                        )
                    [content_id] => 20239802
                    [track] => one test
                    [duration] => 0
                )
            [1] => Array
                (
                    [content_pack_id] => 10003
                    [content_pack_name] => 1001 fdfdf 
                    [image_path] => Array
                        (
                            [0] => pack_image_10002_width.
                        )
                    [content_image_path] => Array
                        (
                            [imgjpeg80] => http://content.jpg
                        )
                    [content_id] => 20239801
                    [track] => two testttttt
                    [duration] => 0
                )   
        )
    [autoshuffle_pack] => no
)

检查[跟踪]价值变化在我的需求输出

按照dependent-first数组。

Array
(
    [20239802] => one test
    [20239801] => two testttttt
)

具有第二阵列

[content_id] => 20239801
[track] => two testttttt

这是你想要做的吗:

foreach($second_array as $key => $second_row) {
    $content_id = $second_row['content_id'];
    if(isset($first_array[$content_id]) && $first_array[$content_id] != '') {
        $second_array['track'] = $first_array[$content_id];
    }
}

您可以执行自己的函数。

第一个数组中的Foreach记录:

  • 循环通过第二个并搜索key == content_id
  • 如果匹配,则将array2[$index][track]的值设置为array1[key]
  • 如果不是继续

您也可以使用array_search()函数更快地找到匹配,因为我将让您看看PHP文档