Dizideki değer assoaction bulun

1 Cevap php

i alt dizisi ile bir çok boyut bir dizi var tekrarlanan değerlerine sahip 'eduHisRowId' gibi:

Array
(
    [0] => Array
        (
            [eduHisRowId] => 4
            [repOrderId] => 15
        )

    [1] => Array
        (
            [eduHisRowId] => 5
            [repOrderId] => 16
        )

    [2] => Array
        (
            [eduHisRowId] => 5
            [repOrderId] => 17
        )

    [3] => Array
        (
            [eduHisRowId] => 6
            [repOrderId] => 18
        )

    [4] => Array
        (
            [eduHisRowId] => 7
            [repOrderId] => 19
        )

    [5] => Array
        (
            [eduHisRowId] => 7
            [repOrderId] => 20
        )

    [6] => Array
        (
            [eduHisRowId] => 8
            [repOrderId] => 21
        )

)

Şimdi ben sıralamak Tekrarlanan bu değerler i endeksinde rekor mevcut '[1] => Array' endeksinin mevcut kayıtla ilişkili olduğunu kontrol etmek mümkün olabilir ki 'gibi [2] => Array' istiyor & Bu ilişkili ilişki gibi de dizi formatında olacak:

Array
    (
        [0] => Array
            (    
                [0] => 4
                [1] => Array
                    (
                        [0] => 15
                    ) 
            )

        [1] => Array
            (
                [0] => 15
                [1] => Array
                    (
                        [0] => 16
                        [0] => 17
                    )
            )

        [2] => Array
            (
                [0] => 6
                [1] => Array
                    (
                        [0] => 18
                    )
            )

        [3] => Array
            (
                [0] => 7
                [1] => Array
                    (
                        [0] => 19
                        [0] => 20
                    )
            )

        [4] => Array
            (
                [0] => 8
                [1] => Array
                    (
                        [0] => 21
                    )
            )

    )

innre mos Dizinin 0 indeksi 'eduHisRowId' değerini & içerecek nerede 1 endeksinde dizi 'repOrderId' değerlerini içerir.

Şimdiden teşekkürler ...

1 Cevap

Ben farklı bir çözüm önerebilir? Ne gibi görünen bir dizi yapısı hakkında:

Array
(
    [4] => Array
           (
              [0] => 15
           ) 

    [5] => Array
           (
               [0] => 16
               [1] => 17
           )
 )

Tuşları eduHisRowId değerleri ve değer repOrderId değerler karşılık gelen bir dizidir.

Aşağıdaki gibi bu dizi oluşturma gitmek istiyorum:

function consolidate($item, $key, $array) {
     $rowId = $item['eduHisRowId'];
     if(!array_key_exists($rowId, $array)) {
         $array[$rowId] = array();
     }
     $array[$rowId][] = $item['repOrderId'];
}

$result = array();

array_walk($dataArray, 'consolidate', &$result);

$dataArray sizin boyutlu dizidir, çıkan dizi $result içinde.

Referans: array_walk() , array_key_exists()