PHP: возможно ли программно добавить значение итератора к имени ключа массива в цикле? - PullRequest
0 голосов
/ 19 июля 2010

У меня есть объект многомерного массива, и в цикле я хотел бы добавить итератор к ключу и получить значение.Пример кода для демонстрации:

    $array_object->example1 = 1;
    $array_object->example2 = 2;


$i = 1;

while ($i <= 2) {

       echo ($array_object->example . $i); //this does not work
       //how to accomplish same?
       $i++
    }

Заранее благодарим вас за любые предложения.

Ответы [ 4 ]

9 голосов
/ 19 июля 2010

echo $array_object->{'example' . $i};

6 голосов
/ 19 июля 2010

Я думаю, переменные решат вашу проблему, немедленно:

$example = "example" . $i;
echo $array_object->$example;

Но вы можете подумать о том, чтобы сделать $array_object->example массивом и получить к нему доступ как

echo $array_object->example[$i];
2 голосов
/ 19 июля 2010
$n = "example" . $i;

echo $array_object->$n;
1 голос
/ 19 июля 2010

Да, но вам нужно сначала установить переменную, прежде чем использовать оператор -> ...

while ($i <= 2) {
        $property = 'example' . $i;  // or "example$i", whichever you prefer
        echo ($array_object->$property);
        $i++
    }

РЕДАКТИРОВАТЬ: черт, я медленно отвечаю ...

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