PHP: Как добавить значение в массив внутри foreach

#php #arrays #foreach

#php #массивы #foreach

Вопрос:

У меня есть следующий массив:

 $cards = array();
foreach($cardList as $card) {
  if ($card->getIsActive()) {
    $myValue = 'my_value';
    $cards[] = $card->getData(); // need to add $myValue to $card data
  }
}

$result = array(
    'cards' => $cards
);
echo json_encode($result);
  

Как бы я мог добавить $myValue в $card->getData() , чтобы оно появилось в моем $result ?

Комментарии:

1. Как именно этот вопрос является дубликатом того вопроса?

2. Потому что они спрашивают, как разобрать JSON с помощью PHP @Martin

3. @JayBlanchard Я немного отредактировал свой вопрос, чтобы, надеюсь, прояснить его. Я могу проанализировать JSON, меня больше интересует, как добавить значение к существующему массиву данных, чтобы его можно было проанализировать с помощью json.

4. Вы могли бы поместить его в массив.

5. В основном, что вам нужно, так это: $card['my_value'] = $myValue внутри цикла

Ответ №1:

Один из методов заключается в добавлении значения в правильную часть объекта.

 $cards = [];
foreach($cardList as $card) {
    if ($card->getIsActive()) {
        $myValue = 'my_value';
        /***
         * Add the data to the object
         ***/
        $card->addData($myValue);
        $cards[] = $card->getData(); // need to add $myValue to $card data
        /***
         * You do NOT need to remove this added data because $card is 
         * simply a COPY of the original object.
         ***/ 
    }
}
  

Существует множество возможных методов, в зависимости от того, какие ограничения у вас есть на то, как вы можете читать данные….

Комментарии:

1. Спасибо! В итоге я добавлял $card['my_value'] = $myValue раньше $card->getData() , но это тоже сработало!