-3

キーごとにマージし、そのキーの値を使用して新しい配列を作成する必要がある配列があります。検索して結果なしで検索しました。どんな助けでも素晴らしいでしょう!

元の配列

Array
(
    [0] => Array
    (
        [name] => Key 1
        [value] => Value 1
    )

    [2] => Array
    (
        [name] => Key 1
        [value] => Value 2
    )

    [3] => Array
    (
        [name] => Key 2
        [value] => Value 1
    )

    [4] => Array
    (
        [name] => Key 1
        [value] => Value 3
    )

    [5] => Array
    (
        [name] => Key 2
        [value] => Value 2
    )
)

最終的な配列は次のようになります

Array
(
    [0] => Array
    (
        [name] => Key 1
        [value] => Array
        (
            [0] => Value 1

            [1] => Value 2

            [2] => Value 3
        )
    )

    [1] => Array
    (
        [name] => Key 2
        [value] => Array
        (
            [0] => Value 1

            [1] => Value 2
        )
    )
)
4

1 に答える 1

1
<?php 
$array =    Array
(
    0 => Array
    (
        'name' => 'Key 1',
        'value' => 'Value 1'
    ),

    2 => Array
    (
        'name' => 'Key 1',
        'value' => 'Value 2'
    ),

    3 => Array
    (
        'name' => 'Key 2',
        'value' => 'Value 1'
    ),

    4 => Array
    (
        'name' => 'Key 1',
        'value' => 'Value 3'
    ),

    5 => Array
    (
        'name' => 'Key 2',
        'value' => 'Value 2'
    )
);
$tmpArray = array(); 
foreach ($array as $smallArray) {
if(!is_array($tmpArray[$smallArray['name']]))
    $tmpArray[$smallArray['name']] = array();

$tmpArray[$smallArray['name']][] = $smallArray['value'];
}
$finalArray = array();
foreach ($tmpArray as $key => $value) {
    $someArray['name'] = $key;
    $someArray['value'] = $value;
    $finalArray[] = $someArray;
}

print_r($finalArray);

私はあなたのために解決策を書きましたが、次回はまず自分自身を試してみてください

于 2012-09-19T09:13:47.077 に答える