Пробегать ассоциативного Array PHP

Привет я обращаюсь к Вам благодаря тому, что я не могу обращаться, или array ассоциативно, array - следующий:

"items": [
{
  "id": "2050144",
  "quantity": 1,
  "name": "Split Mabe MMT12CDBWLCCE8 12.000 BTU - Color Blanco 100058314",
  "refId": "100058314",
  "price": 40232,
  "listPrice": 67054,
  "tax": 4827,
  "bodega": 397
},
{
  "id": "2004254",
  "quantity": 1,
  "name": "Refrigeradora Electrolux ERT44K6CMG  440 Litros - Color Gris 100046374",
  "refId": "100046374",
  "price": 48794,
  "listPrice": 111161,
  "tax": 5855,
  "bodega": 397
}
  ]

я это пробегаю, таким образом:

foreach (items as $itemp) :
                $r=$itemp->refId;
                if ($itemp->refId == 100058314) {
                    $r="siiii";                 
                }
endforeach; 

то, что я нуждаюсь в том, чтобы сделать, состоит в том, чтобы менять стоимость винного погреба, когда поле refId будет равно тому, которого он послал, но мне не удается смочь пробегать array было бы благодарно много за Вашу помощь

2
задан 06.11.2019, 18:41
1 ответ

Это JSON, нет? В этом случае нужно делать asГ-:

<?php

$items =<<<JSON
{
  "items": [
    {
      "id": "2050144",
      "quantity": 1,
      "name": "Split Mabe MMT12CDBWLCCE8 12.000 BTU - Color Blanco 100058314",
      "refId": "100058314",
      "price": 40232,
      "listPrice": 67054,
      "tax": 4827,
      "bodega": 397
    },
    {
      "id": "2004254",
      "quantity": 1,
      "name": "Refrigeradora Electrolux ERT44K6CMG  440 Litros - Color Gris 100046374",
      "refId": "100046374",
      "price": 48794,
      "listPrice": 111161,
      "tax": 5855,
      "bodega": 397
    }]
}
JSON;

$json = json_decode($items);
foreach($json->items as &$item) {
  if ($item->refId == "100058314") {
    $item->bodega = 1234; // <- Este sería el nuevo valor
  }
}
1
ответ дан 01.12.2019, 12:33
  • 1
    Твой ответ почти правилен, но у него есть три errore. 1º Нет из-за qué вынуждать в array JSON. Измени это: $json = json_decode($items); поэтому: $json = json_decode($items, true);. 2º. Если ты делаешь comparació n строгая не funcionará потому что данные о JSON в ключе refId - цепи, не nú морские окуни, следовательно ты должен помещать это así: if ($item->refId == 100058314) { 3º. Ты должен закрывать эту lí nea с точкой с запятой: $item->bodega = 1234; Así funcionará в perfecció n. –  A. Cedano 06.11.2019, 21:23
  • 2
    Спасибо, уже corregí в новости edició n –  Matias P. 07.11.2019, 00:57