• 29-07-2016, 17:01:14
    #1
    Kimlik doğrulama veya yönetimden onay bekliyor.
    merhaba..

    Array
    (
        [0] => Array
            (
                [sosyal_baslik] => 1. Başlık
                [sosyal_ad] => Alt Başlık 1-1
            )
    
        [1] => Array
            (
                [sosyal_baslik] => 1. Başlık
                [sosyal_ad] => Alt Başlık 1-2
            )
    
        [2] => Array
            (
                [sosyal_baslik] => 1. Başlık
                [sosyal_ad] => Alt Başlık 1-3
            )
    
        [3] => Array
            (
                [sosyal_baslik] => 2. Başlık
                [sosyal_ad] => Alt Başlık 2-1
            )
    
        [4] => Array
            (
                [sosyal_baslik] => 2. Başlık
                [sosyal_ad] => Alt Başlık 2-2
            )
    
        [5] => Array
            (
                [sosyal_baslik] => 2. Başlık
                [sosyal_ad] => Alt Başlık 2-3
            )
    
        [6] => Array
            (
                [sosyal_baslik] => 3. Başlık
                [sosyal_ad] => Alt Başlık 3-1
            )
    
        [7] => Array
            (
                [sosyal_baslik] => 3. Başlık
                [sosyal_ad] => Alt Başlık 3-2
            )
    
        [8] => Array
            (
                [sosyal_baslik] => 4. Başlık
                [sosyal_ad] => Alt Başlık 4-1
            )
    
        [9] => Array
            (
                [sosyal_baslik] => 4. Başlık
                [sosyal_ad] => Alt Başlık 4-2
            )
    
        [10] => Array
            (
                [sosyal_baslik] => 4. Başlık
                [sosyal_ad] => Alt Başlık 4-3
            )
    
        [11] => Array
            (
                [sosyal_baslik] => 4. Başlık
                [sosyal_ad] => Alt Başlık 4-3
            )
    
        [12] => Array
            (
                [sosyal_baslik] => 4. Başlık
                [sosyal_ad] => Alt Başlık 4-4
            )
    
        [13] => Array
            (
                [sosyal_baslik] => 4. Başlık
                [sosyal_ad] => Alt Başlık 4-5
            )
    )
    yukarıda ki gibi bir dizi var elimde. bu dizinin çıktısını;

    1. Başlık
    Alt başlık 1-1
    Alt başlık 1-2
    Alt başlık 1-3

    2. Başlık
    Alt başlık 2-1
    Alt başlık 2-2
    Alt başlık 2-3
    ...

    bu şekilde almam gerekiyor.

    Yani ortak alan sosyal_baslik değerine göre alt öğeleri listeleyeceğim.

    Nasıl yapabilirim?
  • 29-07-2016, 23:17:35
    #2
    şu şekilde yapabilirsiniz;

    $input = array(
        array( 
                "sosyal_baslik" => "1. Başlık",
                "sosyal_ad" => "Alt Başlık 1-1"
            ),
        // ...
    );
    
    $output = array_reduce($input, function($result, $current) {
        $title = $current['sosyal_baslik'];
        
        if (!isset($result[$title])) {
            $result[$title] = array();
        }
        
        $result[$title][] = $current['sosyal_ad'];
        
        return $result;
    }, array());
    demo