微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

php – 合并具有相同键或关联的两个数组

我想从中为网站创建一些epg.由于我没有经验,不幸的是我很难

我有两个数组

 Array
 (
 [0] => Array
    (
        num] => 1
        [name] => name 1
        [epg_channel_id] => ch111
        [added] => 1505435915
    )

[1] => Array
    (
        num] => 2
        [name] => name 2
        [epg_channel_id] => ch222
        [added] => 1505435915
    )

[2] => Array
    (
        [num] => 3
        [name] => name 3
        [epg_channel_id] => ch333
        [added] => 1505435915
    )

[3] => Array
    (
        [num] => 4
        [name] => name 4
        [epg_channel_id] => ch444
        [added] => 1505435915

    )

第二阵列

 Array
 (
 [0] => Array
    (
        [ch000] => Um9jayBJbiBSaW8=
    )

[1] => Array
    (
        [ch111] => Um9jayBJbiBSaW8=
    )

[2] => Array
    (
        [ch222] => Um9jayBJbiBSaW8=
    )

[3] => Array
    (
        [ch333] => Um9jayBJbiBSaW8=
    )

[4] => Array
    (
        [ch444] => Um9jayBJbiBSaW8=
    )

我想输出这样的东西,使用epg_channel_id将第二个数组值推入第一个数组

Array
(
[0] => Array
(
    [num] => 1
    [name] => name 1
    [epg_channel_id] => ch111
    [added] => 1505435915
    [ch111] => Um9jayBJbiBSaW8=

)

我尝试了array_recursive,数组合并并不起作用.
一世

解决方法:

如果两个数组中的相应索引保证具有相同的通道ID,则这将非常有效.例如,如果$array1 [0]保证与$array2 [0]具有相同的通道ID,则此解决方案将很好地工作:

$combined = [];
foreach($array1 as $key=>$val){
    $combined[$key] = $val + $array2[$key];
}

但是,如果不保证相应的索引具有相同的通道ID,则此解决方案将不起作用,您将需要使用其他发布的答案之一.

如果您使用此方法,最后一个注意事项是,如果数组的大小不同,您将希望最大的数组为$array1.所以,只需进行比较,看看哪个元素最多.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐