Bagaimana cara mendapatkan satu nilai dari nilai duplikat dalam array Multidimensi menggunakan PHP?

Saya memiliki array multidimensi, beberapa nilai duplikat dan beberapa unik.

nilai duplikat adalah induk dan nilai unik adalah anak dari nilai duplikat.

Array multidimensi :

Array
(
    [0] => Array
        (
            [L1_ID] => 21
            [L1_ATTR_DESC] => Project Overview
            [L2_ATTR_DESC] => Project Status
            [L3_ATTR_DESC] => Ready
        )
    [1] => Array
        (
            [L1_ID] => 21
            [L1_ATTR_DESC] => Project Overview
            [L2_ATTR_DESC] => Project Status
            [L3_ATTR_DESC] => Pending
        )
    [2] => Array
        (
            [L1_ID] => 21
            [L1_ATTR_DESC] => Project Overview
            [L2_ATTR_DESC] => Project Status
            [L3_ATTR_DESC] => Completed
        )
     [3] => Array
        (
            [L1_ID] => 21
            [L1_ATTR_DESC] => Project Overview
            [L2_ATTR_DESC] => Project Quality
            [L3_ATTR_DESC] => Independ
        )
       [4] => Array
        (
            [L1_ID] => 21
            [L1_ATTR_DESC] => Project Overview
            [L2_ATTR_DESC] => Project Quality
            [L3_ATTR_DESC] => G+1
        )
)

Saya ingin menampilkan nilai duplikat yang dicetak satu kali dan nilai unik harus menjadi turunan dari nilai duplikat.

Output yang Diharapkan - Seperti ini:

-Project Status      -Project Build
    --Ready             --Independ
    --Pending           --G+1
    --Completed

person Manish Tiwari    schedule 18.05.2016    source sumber
comment
oke, dan apa yang kamu coba saat ini? apakah itu tidak berfungsi sebagaimana mestinya?   -  person rsz    schedule 18.05.2016
comment
Sebenarnya saya bingung bagaimana caranya.   -  person Manish Tiwari    schedule 18.05.2016
comment
gunakan loop dan kondisi untuk menyimpan seperti yang Anda inginkan   -  person Murad Hasan    schedule 18.05.2016
comment
Pertama-tama, array multidimensi Anda tidak cukup deskriptif (atau dapat dimengerti) agar array dapat dibangun ke dalam struktur yang Anda inginkan. Saya kira jika yang Anda maksud adalah Project Build sebagai Kualitas Proyek, maka Anda hanya perlu mengulang array, memeriksa L2_ATTR_DESC dan mengurutkannya ke dalam array lain.   -  person mauris    schedule 18.05.2016
comment
@ManishTiwari bagian mana yang membingungkan Anda?   -  person rsz    schedule 18.05.2016
comment
periksa jawaban ini stackoverflow .com/questions/10408482/   -  person Ranjeet Singh    schedule 18.05.2016
comment
lihat logika ini: ini belum lengkap tapi hampir, lihat saja kodenya https://3v4l.org/JuPIa   -  person Murad Hasan    schedule 18.05.2016


Jawaban (3)


Sekadar untuk memeriksa, lihat apa yang terjadi: Tautan Online

$ps = array();
foreach($arr as $value){
    $index = str_replace(" ", "", strtolower($value['L2_ATTR_DESC']));
    $ps[$index][] = $value['L3_ATTR_DESC'];
}

echo '<pre>';
print_r($ps);

Mulai sekarang Anda dapat mendesainnya sesuai keinginan Anda.

person Murad Hasan    schedule 18.05.2016

Saya pikir apa yang Anda inginkan biasa disebut "array indeks". Anda dapat memeriksa array_column, yang menurut saya akan memenuhi kebutuhan Anda.

$array = array(/* multidimensional array */);
$index = array_column($array, L3_ATTR_DESC);

$index akan berisi array nilai yang terkait dengan L3_ATTR_DESC di $array.

person JesusTheHun    schedule 18.05.2016
comment
kenapa kamu berpikir? kenapa tidak percaya diri? - person Murad Hasan; 18.05.2016

demo berfungsi. Anda dapat menggunakan Pernyataan foreach

foreach($a as $arg) {
   $tmp[$arg['L1_ATTR_DESC']][$arg['L2_ATTR_DESC']][] = $arg['L3_ATTR_DESC'];
}

$output = array();
foreach($tmp as $type => $labels) {
$output[] = array(
    'L1_ATTR_DESC' => $type,
    'L2_ATTR_DESC' => $labels
  );
}

Saya pikir Anda mengharapkan hasil seperti ini

 Array
(

     [L1_ATTR_DESC] => Project Overview
     [L2_ATTR_DESC] => Array
         (
            [Project Status] => Array
                (
                     [0] => Ready
                     [1] => Pending
                     [2] => Completed
                )

            [Project Quality] => Array
                (
                     [0] => Independ
                     [1] => G+1
                )
       )
)

OR

foreach($a as $arg)
{
    $tmp[$arg['L2_ATTR_DESC']][] = $arg['L3_ATTR_DESC'];
}
print_r($tmp);

Keluaran

    Array
    (
        [Project Status] => Array
            (
                 [0] => Ready
                 [1] => Pending
                 [2] => Completed
            )

        [Project Quality] => Array
            (
                 [0] => Independ
                 [1] => G+1
            )
    )
person KARTHI SRV    schedule 18.05.2016