如何将两个值合并/组合成同一数组中的单个键

3

我不确定我的职称应该用什么术语来描述,但我想知道如何在关联数组中将两个值合并/组合为一个值的解决方案。 例如,我有这个数组:

Array
(
 [1] => Array
    (
        [agent_name_1] => Agent 1
        [agent_phone_1] => 0123456
        [agent_company_1] => My Company
        [agent_email_1] => agent@yahoo.com
        [agent_address_1] => United States
    )

 )

我想将company_1address_1结合起来。因此输出应该是这样的:

Array
(
 [1] => Array
    (
        [agent_name_1] => Agent 1
        [agent_phone_1] => 0123456
        [agent_email_1] => agent@yahoo.com
        [agent_address_1] => My Company, United States
    )

 )

请有人帮我找出解决此问题的最简单方法。


将它们合并成单个字符串?还是将它们合并成一个存储在原始键上的具有两个值的数组? - Mike Lyons
2个回答

4
您需要循环遍历数组并修改原始数组的相应键。
foreach ($array as $key => $agent) {
  $array[$key]['agent_address_1'] = $agent['agent_company_1'] . ', ' . $agent['agent_address_1'];
  unset($array[$key]['agent_company_1']);
}

了解更多关于foreach控制结构及其如何循环遍历数组。


1
你可以在你的代码中像这样使用array_map()
<?php

$MyArray[1] = array (
        'agent_name_1' => 'Agent 1',
        'agent_phone_1' => '0123456',
        'agent_company_1' => 'My Company', 
        'agent_email_1' => 'agent@yahoo.com', 
        'agent_address_1' => 'United States'
    );

$array = array_map(function($n) {$n['agent_address_1'] = $n['agent_company_1'] . ', ' . $n['agent_address_1']; unset($n['agent_company_1']); return $n;}, $MyArray);

print_r($array);

输出:

Array
(
    [1] => Array
        (
            [agent_name_1] => Agent 1
            [agent_phone_1] => 0123456
            [agent_email_1] => agent@yahoo.com
            [agent_address_1] => My Company, United States
        )

)

阅读更多内容,请访问:

http://php.net/array_map


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接