Заменить значение в массиве / объекте php - PullRequest
0 голосов
/ 16 марта 2019

В приведенном ниже массиве / объекте, как бы я прошел через него и заменил, например, SIEcat7 на test и SIEcat8 на test2.Попытка ниже, но есть проблемы с доступом к нужному уровню

Код

foreach($data as $i => $item) {
   if ($i[0] = "SIEcat7") {
       $i[0] = "test";
   }  
}

Объект

stdClass Object
(
    [SIEcat7] => stdClass Object
        (
            [text] => test1
            [amount] => 1 000.00

        )

    [SIEcat8] => stdClass Object
        (
            [text] => test2
            [amount] => 0.00

        )



)

, чтобы стать

stdClass Object
(
    [test1] => stdClass Object
        (
            [text] => test1
            [amount] => 1 000.00

        )

    [test2] => stdClass Object
        (
            [text] => test2
            [amount] => 0.00

        )



)

1 Ответ

2 голосов
/ 16 марта 2019

Вы должны просто получить доступ к SIEcat7, используя $i, а не $i[0], так как $i не является массивом.

Кроме того, чтобы получить доступ к свойствам класса, вам просто нужно получить к ним прямой доступ:

$data->SIEcat7

Чтобы заменить свойство SIEcat7 на test, достаточно просто:

$data->test = $data->SIEcat7;
unset($data->SIEcat7);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...