PHP/Laravel如何为现有数组对象插入指定键值对?
实现方案
原生PHP实现
直接遍历原数组修改字段属性、新增字段后再序列化即可:
// 遍历处理每一项数据 foreach ($loanTypeCount as &$item) { // 若原元素是对象写法:$item->y = (int)$item->y; $item->selected = true; $item['y'] = (int)$item['y']; $item['selected'] = true; } // 销毁引用变量,避免后续逻辑误操作 unset($item); $finalArray = json_encode($loanTypeCount);
Laravel框架实现
可以用集合的map方法更优雅地处理数据:
$finalArray = collect($loanTypeCount) ->map(function ($item) { // 统一转数组处理,若确定是对象可省略该步直接用箭头访问 $item = (array)$item; $item['y'] = (int)$item['y']; $item['selected'] = true; return $item; }) ->toJson();
如果不需要手动控制转换逻辑,也可以在json_encode时加JSON_NUMERIC_CHECK参数自动把数字字符串转为数值类型,不过手动强制转换兼容性和可控性更强。
内容的提问来源于stack exchange,提问作者Eli
相关产品推荐
相关产品推荐

