gpt4 book ai didi

php - 将第二个数组合并到第一个数组中,其中第一个数组中的行值与第二个数组中的行键匹配

转载 作者:可可西里 更新时间:2023-10-31 23:01:17 24 4
gpt4 key购买 nike

我想将第二个数组中的关联元素合并到第一个数组中,其中第二个数组的子数组键与行的 epg_channel_id 值匹配。

第一个数组:

[
[
'num' => 1,
'name' => 'name 1',
'epg_channel_id' => 'ch111',
'added' => '1505435915',
],
[
'num' => 2,
'name' => 'name 2',
'epg_channel_id' => 'ch222',
'added' => '1505435915',
],
[
'num' => 3,
'name' => 'name 3',
'epg_channel_id' => 'ch333',
'added' => '1505435915',
],
[
'num' => 4,
'name' => 'name 4',
'epg_channel_id' => 'ch444',
'added' => '1505435915'
]
]

第二个数组:

[
['ch000' => 'Um9jayBJbiBSaW8='],
['ch111' => 'Um9jayBJbiBSaW8='],
['ch222' => 'Um9jayBJbiBSaW8='],
['ch333' => 'Um9jayBJbiBSaW8='],
['ch444' => 'Um9jayBJbiBSaW8=']
]

期望的输出(一行):

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

我尝试了 array_recursive、数组合并,但都不行。

最佳答案

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

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

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

如果您确实使用此方法,最后要注意的是,如果数组大小不同,您会希望最大的一个是 $array1。因此,只需比较一下,看看哪个元素最多。

关于php - 将第二个数组合并到第一个数组中,其中第一个数组中的行值与第二个数组中的行键匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46271540/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com