PHP Dizi değerlerinin üzerine ama diziye eklemek gerekir

3 Cevap php

Dizi:

Array
(
    [0] => Array
        (
            [0] => Service Simulators
            [1] => Array
                (
                    [0] => 1.php
                    [1] => Title 1
                )

        )

    [1] => Array
        (
            [0] => Service Simulators
            [1] => Array
                (
                    [0] => 2.php
                    [1] => Title 2
                )

        )

    [2] => Array
        (
            [0] => Service Simulators
            [1] => Array
                (
                    [0] => 3.php
                    [1] => Title 3
                )

        )

    [3] => Array
        (
            [0] => Service Simulators
            [1] => Array
                (
                    [0] => 4.php
                    [1] => Title 4
                )

        )

    [4] => Array
        (
            [0] => Service Simulators
            [1] => Array
                (
                    [0] => 5.php
                    [1] => Title 5
                )

        )

    [5] => Array
        (
            [0] => Trouble Shooting
            [1] => Array
                (
                    [0] => a.php
                    [1] => Title A
                )

        )

    [6] => Array
        (
            [0] => Trouble Shooting
            [1] => Array
                (
                    [0] => b.php
                    [1] => Title B
                )

        )

    [7] => Array
        (
            [0] => Deprecated
            [1] => Array
                (
                    [0] => 123.php
                    [1] => Title 123
                )

        )

    [8] => Array
        (
            [0] => Admin Only
            [1] => Array
                (
                    [0] => admin.php
                    [1] => Title Admin
                )

        )
)

Ne gerek

Array
(
    [0] => Array
        (
            [0] => Service Simulators
            [1] => Array
                (
                    [0] => 1.php
                    [1] => Title 1
                    [3] => 2.php
                    [4] => Title 2
                    [5] => 3.php
                    [6] => Title 3
                    [7] => 4.php
                    [8] => Title 4
                    [9] => 5.php
                    [10] => Title 5
                )

        )

    [1] => Array
        (
            [0] => Trouble Shooting
            [1] => Array
                (
                    [0] => a.php
                    [1] => Title A
                    [3] => b.php
                    [4] => Title B
                )

        )

    [2] => Array
        (
            [0] => Deprecated
            [1] => Array
                (
                    [0] => 123.php
                    [1] => Title 123
                )

        )

    [3] => Array
        (
            [0] => Admin Only
            [1] => Array
                (
                    [0] => admin.php
                    [1] => Title Admin
                )

        )
)

Nedir olay

Array
(
    [0] => Array
        (
            [0] => Service Simulators
            [1] => Array
                (
                    [0] => 5.php
                    [1] => Title 5
                )

        )

    [1] => Array
        (
            [0] => Trouble Shooting
            [1] => Array
                (
                    [0] => b.php
                    [1] => Title B
                )

        )

    [2] => Array
        (
            [0] => Deprecated
            [1] => Array
                (
                    [0] => 123.php
                    [1] => Title 123
                )

        )

    [3] => Array
        (
            [0] => Admin Only
            [1] => Array
                (
                    [0] => admin.php
                    [1] => Title Admin
                )

        )
)

Ben çalışıyorum, ne bir sorgu sonuç kümesi geliyor

$tmp_arr = array();

while($row = mysql_fetch_row($result))
{
   // $row[1] = groupname
   // $row[2] = pagename
   // $row[3] = pagetitle

   // Push to array
   $build_arr_items = array($row[2],$row[3]);

   array_push($tmp_arr, array($row[1], $build_arr_items)); // This builds the first example

   //$tmp_arr[$row[1]]=$build_arr_items; // this is the overwrite example
}

herhangi bir düşünce, doğru yönde yardımcı olabilir mi?

3 Cevap

Tamam ben çalışan bir şey buldum. Ben sadece Anahtar Dizini ilişkileri tersine

$tmp_arr[$row[2]]=$row[1];
$tmp_arr[$row[3]]=$row[1];

Eğer bu dizi yapıya Evli misiniz? Sen iyi grup adı yani anahtarlı bir dizi hizmet olabilir:

Array(
    'Service Simulators' => array(
                              [0] => 1.php
                              [1] => Title 1
                              [3] => 2.php
                              )
      //etc...
      )

O zaman bunu gibi kod olabilir çünkü:

$tmp_arr = array();

while($row = mysql_fetch_row($result))
{
     // $row[1] = groupname
     // $row[2] = pagename
     // $row[3] = pagetitle

      $tmp_arr[$row[1]][] = $row[2];
      $tmp_arr[$row[1]][] = $row[3];
}

Bu yol da biraz daha az dağınık görünüyor.

Op benzer bir yapıda tutmak için kilit örneğini sabit, ancak anahtar adında her ayar:

$tmp_arr = array();
while($row = mysql_fetch_row($result)){
    // $row[1] = groupname
    // $row[2] = pagename
    // $row[3] = pagetitle

    $tmp_arr[ $row[1] ] = array( $row[2], $row[3] );
}
/*
    Output
    array(
        "Group Name" => Array(
            Array(
                0 => "pagename"
                1 => "pagetitle"
            )
         )
    )
*/