【问题标题】:How to merge/combine two values into single key in the same array如何将两个值合并/组合成同一数组中的单个键
【发布时间】:2015-06-12 20:20:08
【问题描述】:

我不确定我的标题使用什么合适的术语,但只是想知道下面的解决方案需要将两个值合并/组合成一个关联数组中的一个。 例如我有这个数组:

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_1 与address_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
    )

 )

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

【问题讨论】:

  • 将它们组合成一个字符串?或放入一个数组中,其中两个值存储在原始键中

标签: php arrays algorithm multidimensional-array associative-array


【解决方案1】:

您需要遍历数组并修改原始数组的对应键。

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 控制结构以及它如何在数组中循环。

【讨论】:

    【解决方案2】:

    您可以像这样在代码中使用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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-07-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-24
      • 2012-08-16
      • 1970-01-01
      相关资源
      最近更新 更多