0

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

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] => ) 

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

Array ( [product_category] => big-savings, for-men, jeans [brand] => 3-1-phillip-lim [size] => 10 ) 

我实在是摸不着头脑。这是我尝试过的:

foreach($arr as $k => $v) {
    if ($v != '') {
        $arr = explode('-', $v, 2);
        $terms[] = $arr[1];
        $taxes[] = $arr[0];
    }
}

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

product_category-big-savings是我的目标,我用它来将类别与其值分开:

$arr = explode('-', $v, 2);

这给了我:

product_category ->
big-savings ->

等等。如何将之后的所有产品类别分组product_category为关键字?等等。

但在那之后我得到了一个更复杂的表格。我假设有一个简单的公式可以滚动这个数组并将其转换为所需的格式。任何帮助表示感谢...

4

2 回答 2

1
list($key, $value) = explode('-', $v, 2);

if (isset($result[$key])) {
    $result[$key] .= ', ' . $value;
} else {
    $result[$key] = $value;
}
于 2012-11-04T07:53:43.730 回答
0

你应该这样做:

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]];
        }
    }
}
于 2012-11-04T07:57:42.173 回答