首页 > 解决方案 > 数组搜索键和替换值php

问题描述

我有一个像

[{"detail":"33,putih","sku":"123","price":"500000","stok":"8"},{"detail":"33,hitam","sku":"123","price":"500000","stok":"5"},{"detail":"43,hitam","sku":"123","price":"1000000","stok":"1"}]

我必须对其进行 json_decode。

我想从细节“33,hitam”更改stok = 2。

但我很困惑首先使用数组搜索并使用数组替换。

标签: phparrays

解决方案


你可以这样做:

$stringarray = '[{"detail":"33,putih","sku":"123","price":"500000","stok":"8"},{"detail":"33,hitam","sku":"123","price":"500000","stok":"5"},{"detail":"43,hitam","sku":"123","price":"1000000","stok":"1"}]';
$array = json_decode($stringarray);
var_dump($array);
$replaced = replaceInObject($array, "detail", "33,hitam", "stok" , "2");
var_dump($replaced);

function replaceInObject($array, $field, $searchvalue, $valuefield, $newvalue){
    foreach($array as $element){
        if($element->$field == $searchvalue){
            $element->$valuefield = $newvalue;
        }
    }
    return $array;
}

推荐阅读