首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将数组值合并为php中的单个键和多个值

将数组值合并为php中的单个键和多个值
EN

Stack Overflow用户
提问于 2015-06-23 01:40:08
回答 2查看 1.2K关注 0票数 1

我希望数组合并成键值对。看下面的例子

下面是我的代码和数组$aExtraFilter

代码语言:javascript
运行
复制
array (size=4)
  0 => 
    array (size=2)
      'key' => string 'CookTech' (length=8)
      'value' => string 'Broil' (length=5)
  1 => 
    array (size=2)
      'key' => string 'CookTech' (length=8)
      'value' => string 'Pan Fry' (length=7)
  2 => 
    array (size=2)
      'key' => string 'CookSkills' (length=10)
      'value' => string 'Intro' (length=5)
  3 => 
    array (size=2)
      'key' => string 'CookSkills' (length=10)
      'value' => string 'Knife Skills' (length=12)

这是我的代码:

代码语言:javascript
运行
复制
    $aExtraFilter2 = [];
    $extrafilterkey = '';
    $extrafiltervalue = [];
    foreach ($aExtraFilter as $key => $value) {
        $extrafilterkey = $value['key'];
        $aExtraFilter2[$extrafilterkey] = [];
        array_push($extrafiltervalue, $value['value']);
        $aExtraFilter2[$extrafilterkey] = implode(',', $extrafiltervalue);
    }
    var_dump($aExtraFilter2);

产出如下:

代码语言:javascript
运行
复制
array (size=2)
  'CookTech' => string 'Broil,Pan Fry' (length=13)
  'CookSkills' => string 'Broil,Pan Fry,Intro,Knife Skills' (length=32)

我想让它看起来像这样

代码语言:javascript
运行
复制
array (size=2)
  'CookTech' => string 'Broil,Pan Fry' (length=13)
  'CookSkills' => string 'Intro,Knife Skills' (length=32)

我想我快到了,但我想我需要一些帮助。

EN

Stack Overflow用户

发布于 2015-06-23 02:57:15

编写代码的典型方法是根据键创建一个临时结构,并包含一个具有以下值的数组:

代码语言:javascript
运行
复制
$tmp = [];
foreach ($aExtraFilter as $pair) {
    $tmp[$pair['key']][] = $pair['value'];
}

结构之后会是这样的:

代码语言:javascript
运行
复制
[
    'CookTech' => ['Broil', 'Pan Fry'],
    'CookSkills' => ['Intro', 'Knife Skills'],
]

然后,根据您想要的表示来映射该数组:

代码语言:javascript
运行
复制
$aExtraFilter2 = array_map(function($values) {
    return join(',', $values);
}, $tmp);

另见:array_map()

票数 1
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30992523

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档