Массив PHP не работает в функции - PullRequest
0 голосов
/ 25 декабря 2010

В настоящее время я экспериментирую с массивами в PHP и создал фальшивую среду, в которой будет отображаться информация команды.

    $t1 = array (
            "basicInfo" => array (
                "The Sineps",
                "December 25, 2010",
                "lemonpole"
            ),
            "overallRecord" => array (0, 0, 0, 0),
            "overallSeasons" => array (
                1 => array (14, 0, 0),
                2 => array (9, 5, 2),
                3 => array (12, 4, 0),
                4 => array (3, 11, 2)
            ),
            "games" => array (
                "<img src=\"images/cs.gif\" alt=\"Counter-Strike\" />",
                "<img src=\"images/cs.gif\" alt=\"Counter-Strike\" />",
                "<img src=\"images/cs.gif\" alt=\"Counter-Strike\" />",
                "<img src=\"images/cs.gif\" alt=\"Counter-Strike\" />"
            ),
            "seasonHistory" => array (
                "Season I",
                "Season II",
                "Season III",
                "Season IV"
            ),
            "divisions" => array (
                "Open",
                "Main",
                "Main",
                "Invite"
            )
        );
// Displays the seasons the team has been in along
    // with the record of each season.
    function seasonHistory() {
        // Make array variable local-scope.
        global $t1;

        // Count the number of seasons.
        $numrows = count($t1["seasonHistory"]);

        // Loop through all the variables until
        // it reaches the last entry made and display
        // each item seperately.
        for($v = 0; $v <= $numrows; $v++) {
            // Echo each season.
            echo "<tr><td>{$t1["games"][$v]}</td>";
            echo "<td>{$t1["seasonHistory"][$v]}</td>";
            echo "<td>{$t1["divisions"][$v]}</td></tr>";
        }
    }

Я протестировал несколько возможных проблем, и после их сужения у меня появилосьСкажу только одно: моя функция по какой-то причине не подключается к массиву .Я не знаю, что еще делать, потому что я думал, что глобальный массив решит эту проблему.

Что работает:

  1. Я могу повторить $ t1 ["games"] [0] на странице Мне нужно, чтобы это отобразилось идает мне содержимое.

  2. Я попытался повторить $ t1 ["games"] [0] ВНУТРИ функции, а затем вызвать функцию, и она не отображаетсячто угодно.

Ответы [ 2 ]

3 голосов
/ 25 декабря 2010

Это может произойти, если вы определите свой $t1 не в глобальной области видимости.Попробуйте явно поместить его в глобальные переменные, выполнив $GLOBALS['t1'] = $t1; сразу после определения вашей переменной.

2 голосов
/ 25 декабря 2010
extract($t1);

Попробуйте эту функцию вместо глобальной.

Лучше передать массив в качестве аргумента ...

function seasonHistory($array){

$t1 = $array;

//your function
}
...