首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何转换此PHP数组,以准备一个没有重复"terms“和组合的数组?

如何转换此PHP数组,以准备一个没有重复"terms“和组合的数组?
EN

Stack Overflow用户
提问于 2012-11-04 15:51:14
回答 2查看 57关注 0票数 0

我需要修改一个PHP数组,我真的很难使用它:(

代码语言:javascript
复制
Array ( [0] => product_category-big-savings [1] => product_category-for-men [2] => product_category-jeans [3] => brand-3-1-phillip-lim [4] => size-10 [5] => ) 

这就是数组的输出,我想把它转换成这样:

代码语言:javascript
复制
Array ( [product_category] => big-savings, for-men, jeans [brand] => 3-1-phillip-lim [size] => 10 ) 

我真的不能掌握它的诀窍。以下是我尝试过的方法:

代码语言:javascript
复制
foreach($arr as $k => $v) {
    if ($v != '') {
        $arr = explode('-', $v, 2);
        $terms[] = $arr[1];
        $taxes[] = $arr[0];
    }
}

第一个数组由键/值组成。这些值是我的目标术语:例如:

product_category-big-savings是我的目标,我用它将类别从它的值中分离出来:

代码语言:javascript
复制
$arr = explode('-', $v, 2);

这给了我:

代码语言:javascript
复制
product_category ->
big-savings ->

诸若此类。如何在以product_category为关键字的数组中对后面的所有产品类别进行分组?诸若此类。

但在那之后我得到了一个更复杂的形式。我假设有一个简单的公式来滚动这个数组,并将其转换为所需的格式。如有任何帮助,敬请惠顾。

EN

回答 2

Stack Overflow用户

发布于 2012-11-04 15:53:44

代码语言:javascript
复制
list($key, $value) = explode('-', $v, 2);

if (isset($result[$key])) {
    $result[$key] .= ', ' . $value;
} else {
    $result[$key] = $value;
}
票数 1
EN

Stack Overflow用户

发布于 2012-11-04 15:57:42

您应该改为这样做:

代码语言:javascript
复制
foreach($arr as $k => $v) {
    if ($v != '') {
        $arr = explode('-', $v, 2);
        if (!isset($result[$arr[0]])){
            $result[$arr[0]] = $result[$arr[1]];
        }
        else {
            $result[$arr[0]] .= ', '.$result[$arr[1]];
        }
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13216993

复制
相关文章

相似问题

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