0

私は1つの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 に答える