php - 数组搜索键和替换值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。
但我很困惑首先使用数组搜索并使用数组替换。
解决方案
你可以这样做:
$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;
}
推荐阅读
- c++ - “文字类型”与“文字”是否相同?
- javascript - 如何在画布中制作输入类型文件以上传图像
- python - 无论我做什么,Matplotlib 交互模式都不起作用
- c++ - C++ 石头剪刀布
- macos - 如何创建在 macOS 10.15.6 中切换默认浏览器的程序?
- c# - 未打印空数据表的标签消息
- python - 使用 carma(犰狳矩阵和 numpy 数组)用 pybind11 包装 c++ 类时出错
- python - 有没有办法计算依赖于前一行项目的数据框?
- perl - 如何在perl中为两个不同名称的txt文件制作脚本
- wordpress - 元查询值 >=(当前日期)不适用于 ACF