1

キーごとに配列を結合しようとしています。したがって、同じサブキーで始まるすべてのサブ配列は、1つのサブ配列に結合されます。また、一致した値の最小値を保持したいと思います。

現在、これは私が持っているものです:

$statement = Array
(
    [662_0] => Array
        (
            [0] => 06-01-2012
            [1] => 436
            [2] => MEDIA
            [3] => 2006
            [4] => Template Testing
            [5] => KS
            [6] => 662
            [7] => 0
            [8] => 0
            [9] => 0
            [10] => 0
            [11] => 0
            [12] => 1290
            [13] => 1290.00
            [14] => 0.00
            [15] => 0
            [16] => 1290.00
        )

    [662_1] => Array
        (
            [0] => 06-01-2012
            [1] => 436
            [2] => MEDIA
            [3] => 2006
            [4] => Template Testing
            [5] => KS
            [6] => 662
            [7] => 295.00
            [8] => 0
            [9] => 0
            [10] => 0
            [11] => 0
            [12] => 995
            [13] => 1290.00
            [14] => 0.00
            [15] => 0
            [16] => 1290.00
        )

    [662_2] => Array
        (
            [0] => 06-01-2012
            [1] => 436
            [2] => MEDIA
            [3] => 2006
            [4] => Template Testing
            [5] => KS
            [6] => 662
            [7] => 0
            [8] => 0
            [9] => 0
            [10] => 0
            [11] => 0
            [12] => 1290
            [13] => 1290.00
            [14] => 0.00
            [15] => 0
            [16] => 1290.00
        )

    [663_0] => Array
        (
            blah blah blah...
        )
);

これが私が欲しいものです:

$statement = Array
(
    [662] => Array
        (
            [0] => 06-01-2012
            [1] => 436
            [2] => MEDIA
            [3] => 2006
            [4] => Template Testing
            [5] => KS
            [6] => 662
            [7] => 295.00
            [8] => 0
            [9] => 0
            [10] => 0
            [11] => 0
            [12] => 995
            [13] => 1290.00
            [14] => 0.00
            [15] => 0
            [16] => 1290.00
        )

    [663] => Array
        (
            blah blah blah...
        )
);

必要に応じて、より多くの情報を提供させていただきます。ありがとう!!!

4

1 に答える 1

0

このコードは、元の配列を反復処理し_、アイテムの結合された識別子を取得してマージし、新しい値が既に設定されている値よりも小さい場合は、結果の配列の値を置き換えます。

<?php
$original = array(
        '122_0' => array('k1'=>4, 'k2'=>2),
        '122_1' => array('k2'=>3, 'k3'=>3),
        '122_2' => array('k3'=>2, 'k4'=>4),
        '111_0' => array('k1'=>3, 'k2'=>3),
        '111_1' => array('k2'=>2, 'k3'=>2),
        '111_2' => array('k3'=>1, 'k4'=>1)
);

foreach ($original as $key=>$sub) {
    list($realkey, $num) = explode('_', $key);
    foreach ($sub as $subkey => $value) {
        if ( isset($result[$realkey][$subkey]) 
             && $value < $result[$realkey][$subkey] ) {
            $result[$realkey][$subkey] = $value;
        }
    }
}
print_r($result);
于 2012-06-12T15:00:39.097 に答える