2016-04-14 29 views
0

Ben $ öğesi php değişkeni içinde bu diziyi alma ve şimdi bu diziyiGüncelleme madde

$jsonDecode = json_decode($items, true); 
echo 'before' . PHP_EOL; 
print_r($jsonDecode); 

foreach ($jsonDecode as $key => $obj) { 
    if ($obj->sku == '11004') { 
     $jsonDecode[$key]['qty'] = '5'; 
    } 
} 
print_r($jsonDecode); 

deşifre istediğim am

[{ 
    "sku": "5221", 
    "qty": 1, 
    "price": 17.5, 
    "desc": "5395 - Replenish Natural Hydrating Lotion 3.5oz" 
}, { 
    "sku": "11004", 
    "qty": 1, 
    "price": 30.95, 
    "desc": "150 - Q-Plus 16oz" 
}] 

bir JSON dizisi var Bu endeksin 5 olacağını. ama yukarıdaki kodu kullandıktan sonra, bu dizin için aynı qty ile aynı dizi var.

Nasıl yapabilirim Lütfen Yardım.

+0

sizin json dize geçerli olması görünmüyor. miktarını güncellemek ve daha sonra yeni json oluşturmak istediğiniz tam json dize – RomanPerekhrest

+0

göster? –

+0

yes @ChetanAmeta 11004 sku ile aynı json qty güncellemek ve daha sonra DB kaydetmek istiyorum. Ben foreach uygulamadan önce foreach ve 2. uygulamadan önce json kodu çözülmüş dizi iki kez 1 yazdırıyorum ama herhangi bir değişiklik olmadan –

cevap

1

çözümü aşağıda deneyin:

$json = '[{ 
    "sku": "5221", 
    "qty": 1, 
    "price": 17.5, 
    "desc": "5395 - Replenish Natural Hydrating Lotion 3.5oz" 
}, { 
    "sku": "11004", 
    "qty": 1, 
    "price": 30.95, 
    "desc": "150 - Q-Plus 16oz" 
}]'; 

$array = json_decode($json, true); 
//print_r($array); 

foreach($array as &$a){ 
    if($a['sku'] == 11004){ 
     $a['qty'] = 5; 
    } 
} 

echo json_encode($array); 

çıkışı:

[{ 
    "sku": "5221", 
    "qty": 1, 
    "price": 17.5, 
    "desc": "5395 - Replenish Natural Hydrating Lotion 3.5oz" 
}, { 
    "sku": "11004", 
    "qty": 5, 
    "price": 30.95, 
    "desc": "150 - Q-Plus 16oz" 
}] 
+0

Yine de herhangi bir qty değişiklik olmadan aynı dizi alıyorum. –

+0

foreach döngüsünde val ile '&' kullandınız .... benim için iyi çalışıyor .. https://3v4l.org/1IBIO adresine bir göz atın –

+0

Çalıştığınız için teşekkürler, ama lütfen neden kullandığımızı söyleyin & İşte? –