Как указать массив с помощью переменной в php? - PullRequest
0 голосов
/ 22 февраля 2012

Мне нужна помощь о том, как я могу указать имя массива или ключ, используя переменную? Я пробовал бесчисленное количество раз, и это никогда не работает

Прежде чем я доберусь до кода, $ games - это массив, и я покажу его внизу

вот мой код (я покажу пример массива внизу)

$increment = 0; //increment i use in a while loop +1 per loop starting at 0
$increment2 = increment - 1; // to get the game number i need to minus 1 from $increment, 
//this works since the array starts at 0 and increment will be 1 when the while loop  starts.

$gamestotal = $games[totalGames]; //This number is different everytime, it is always 
//between 1-1000, it counts the number of a games a person has.
$gamesnpcommid = $games[$increment2][npcommid]; //each game has a unique code, i cURL this 
//info from Sony servers and return it in an array (array example below) This is the part 
//that is not working, to help understand please check array first, this variable is used   
//in the while loop and i need it to start at array 0 and keep returning the unique code
//until the loops stops at the final array number.

// Вот цикл

while($increment<$gamestotal)

    if($increment % 2 == 0){
    $increment=$increment+1;
        echo "<tr>";
        echo "<td style='background-color:#e6e8fa'>";
        echo $gamesnpcommid;
        echo "</td>";
        echo "</tr>";
    }
    else
    {$increment=$increment+1;
        echo "<tr>";
        echo "<td style='background-color:adeaea'>";
        echo $gamesnpcommid;
        echo "</td>";
        echo "</tr>";
    }

echo "</table>";

Все работает совершенно нормально, но ссылка на массив не работает ($gamesnpcommid), вот пример того, как может выглядеть массив $games:

Массив хранится в переменной $games,

Array
(
    [totalGames] => 110
    [0] => Array
        (
            [npcommid] => NPWR00507_00
            [platinum] => 0
            [gold] => 1
            [silver] => 11
            [bronze] => 32
            [total] => 44
            [lastupdated] => 1329258539
        )

    [1] => Array
        (
            [npcommid] => NPWR01140_00
            [platinum] => 1
            [gold] => 4
            [silver] => 8
            [bronze] => 29
            [total] => 42
            [lastupdated] => 1328586022
        )

    [2] => Array
        (
            [npcommid] => NPWR01118_00
            [platinum] => 0
            [gold] => 0
            [silver] => 3
            [bronze] => 8
            [total] => 11
            [lastupdated] => 1328067349
        )
    )

Может кто-нибудь объяснить мне, почему, например, если $increment2 = 2 и затем, когда я пытаюсь ссылаться на массив с помощью $games[$increment2][npcommid], он не возвращает NPWR01118_00, как в массиве? Но когда я использую $games[2][npcommid] это работает? Я выполнил тщательную отладку, и я знаю, что массив работает, но сейчас я в тупике.

Ответы [ 2 ]

1 голос
/ 09 октября 2012

Вы всегда можете добавить error_reporting(E_ALL);, чтобы узнать, какая у вас ошибка, сейчас я работаю над тем же проектом

0 голосов
/ 22 февраля 2012

try

$games[$increment2]["npcommid"] 

вместо

$games[$increment2][npcommid]

другими словами, ассоциативные ключи всегда должны заключаться в кавычки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...