首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何替换数组中的数据

如何替换数组中的数据
EN

Stack Overflow用户
提问于 2019-06-19 17:20:14
回答 3查看 46关注 0票数 0

当前数组结构

代码语言:javascript
运行
AI代码解释
复制
array:2 [
  "name" => "john"
  "data" => array:3 [
    0 => array:2 [
      "id" => 191109
      "ref_num" => "INV9002"
    ]
    1 => array:2 [
      "id" => 191110
      "ref_num" => ""
    ]
  ]

如果ref_num为空,我会尝试将id复制到ref_num。到目前为止,我确实尝试过

代码

代码语言:javascript
运行
AI代码解释
复制
$izero = //that data structure above

foreach($izero['data'] as $key => $value) {
        if($value['ref_num'] === null) {
            $value['ref_num'] = $value['id'];
        }
        $izero['data'] = $value;
    }

$echo $izero

izero中的结果错过了第二个数组。它只保留第一个数组。例如,如果我的data有50个数组,现在它将成为唯一具有第一个数组的数组。

预期的结果应该如下所示

代码语言:javascript
运行
AI代码解释
复制
array:2 [
  "name" => "john"
  "data" => array:3 [
    0 => array:2 [
      "id" => 191109
      "ref_num" => "INV9002"
    ]
    1 => array:2 [
      "id" => 191110
      "ref_num" => "191110"
    ]
]
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2019-06-19 17:26:11

其他答案显示了如何使用引用变量修复此问题。如果要赋值给数组,则需要使用$key对其进行索引

代码语言:javascript
运行
AI代码解释
复制
foreach($izero['data'] as $key => $value) {
    if($value['ref_num'] === null) {
        $value['ref_num'] = $value['id'];
    }
    $izero['data'][$key] = $value;
}
票数 1
EN

Stack Overflow用户

发布于 2019-06-19 17:23:18

您每次都会覆盖$izero['data']。只需引用&值,然后您就可以更改它:

代码语言:javascript
运行
AI代码解释
复制
foreach($izero['data'] as &$value) {
        if($value['ref_num'] === null) {
            $value['ref_num'] = $value['id'];
        }
}

或者按键修改:

代码语言:javascript
运行
AI代码解释
复制
foreach($izero['data'] as $key => $value) {
        if($value['ref_num'] === null) {
            $izero['data'][$key]['ref_num'] = $value['id'];
        }
}

而且,您没有显示数据的实际值,并且对于null,空字符串""不是===。您可能需要检查""0nullfalseempty

代码语言:javascript
运行
AI代码解释
复制
        if(empty($value['ref_num'])) {
票数 1
EN

Stack Overflow用户

发布于 2019-06-19 17:23:49

对代码进行了一些调整,如果您将foreach更改为使用&$value,那么您可以就地更新值,而不必在循环结束时重新赋值。

您还可以使用($value['ref_num'] === null),以检查它是否为空(值和类型都为空),并且您的数组似乎具有""。所以你应该改变测试。

代码语言:javascript
运行
AI代码解释
复制
foreach($izero['data'] as $key => &$value) {
    if(empty($value['ref_num'])) {
        $value['ref_num'] = $value['id'];
    }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56672945

复制
相关文章
使用 Excel和 Python从互联网获取数据
互联网上有极其丰富的数据资源可以使用。使用Excel可以自动读取部分网页中的表格数据,使用Python编写爬虫程序可以读取网页的内容。
Python编程与实战
2022/10/05
4K0
使用 Excel和 Python从互联网获取数据
聊聊eventhorizon的Aggregate
eventhorizon/aggregatestore/model/aggregatestore.go
code4it
2021/03/31
4260
聊聊eventhorizon的Aggregate
mybatis获取update的id
平常我门都是更新数据,用更新的条件再查询一次,得到更新的记录。这样我门就进行了两次数据库操作,链接了两次数据库。增加了接口的处理事件,因为链接数据库是很耗时的操作。
似水的流年
2018/01/25
9.4K0
mybatis获取update的id
平常我门都是更新数据,用更新的条件再查询一次,得到更新的记录。这样我门就进行了两次数据库操作,链接了两次数据库。增加了接口的处理事件,因为链接数据库是很耗时的操作。 其实可以通过 mybatis 的 selectKey 标签来解决这个问题。  selectKey 这个标签大家基本上都用过,比如在插入数据的时候,返回插入数据的纪录。如: <selectKey resultType="int" order="AFTER" keyProperty="id"> SELECT
似水的流年
2018/03/28
3.9K0
从已知探索未知的设计之道
在寻找如何更好的“发现-解决问题”过程中,受到MIT媒体实验室教授Neri Oxman文章《Design and Science - Krebs Cycle of Creativity》一文启发,区别于“点对点”的发现-解决问题,为了从更高角度更好的解决问题,类比克雷布斯循环和创造力的克氏循环(KCC),将“发现-解决”问题/机会点这一过程整体系统化,尝试提出系统性解决问题之思考-行动模型Krebs Cycle of Design,并以空间Feeds信息流产品举例如何实践Krebs Cycle of Des
腾讯ISUX
2018/06/29
9530
mybatis获取update的id
平常我门都是更新数据,用更新的条件再查询一次,得到更新的记录。这样我门就进行了两次数据库操作,链接了两次数据库。增加了接口的处理事件,因为链接数据库是很耗时的操作。
似水的流年
2019/12/06
3.5K0
Python获取Windows的CPU数量
通过取得Windws下的一个环境变量: NUMBER_OF_PROCESSORS实现。
用户8983410
2021/11/02
2K0
Flink 从Checkpoint中恢复作业
如果我们的任务已经执行很长时间,突然遇到故障停止,那么中间过程处理结果就会全部丢失,重启后需要重新从上一次开始的位置消费,这会花费我们很长的时间。这种结局显示我们不能接受,我们希望的是作业在故障失败重启后能保留之前的状态并能从失败的位置继续消费。可以通过如下配置保存处理状态:
smartsi
2020/12/29
6K0
聊聊eventhorizon的Aggregate
eventhorizon/aggregatestore/model/aggregatestore.go
code4it
2021/04/16
4810
MongoDB 中Aggregate使用与相关限制
官网:https://docs.mongodb.com/manual/reference/operator/aggregation-pipeline/
王小明_HIT
2020/02/18
9480
使用snakemake编写生信分析流程
The Snakemake workflow management system is a tool to create reproducible and scalable data analyses. Workflows are described via a human readable, Python based language. They can be seamlessly scaled to server, cluster, grid and cloud environments, without the need to modify the workflow definition. Finally, Snakemake workflows can entail a description of required software, which will be automatically deployed to any execution environment.
生信探索
2023/05/23
9130
Android 动态获取资源的ID
但是对于以上做法, 官方并不推荐,并且 getIdentifier这个写library的时候, 如果里面需要引用主程的资源且R所在的包名未知时还是很有用的(如果在gradle里修改了packageName, R所在的包名是和packageName不一样的,没法反射),当然也是有解决的办法: 如果愿意,是可以根据业务拼接出 “package_name.R.drawable.class” 的。但是如果这样的话,视具体情况一定有更好的解法。
胖虎哥
2023/05/10
2.6K0
getIdentifier获取资源id
首先我想到的是反射,但是经过实验发现提示报错no emoty constructor。
提莫队长
2019/02/21
4.1K0
Spark MLlib 之 aggregate和treeAggregate从原理到应用
由于treeAggregate是在aggregate基础上的优化版本,因此先来看看aggregate是什么.
用户1154259
2018/07/31
8640
Spark MLlib 之 aggregate和treeAggregate从原理到应用
jmeter Aggregate Graph
"Aggregate Graph" 是 JMeter 中的一个监听器,它以图形的形式展示了性能测试的汇总结果。
运维开发王义杰
2023/08/16
2460
jmeter Aggregate Graph
Snakemake入门
Snakemake 是一个基于Python3的用于构建和管理数据分析工作流程的免费工具。
小汪Waud
2023/09/18
3480
Snakemake入门
Mybatis获取自增长的主键id
这个问题主要是今天项目中新加的一个需求导致的,主要过程是这样的,因为每个项目里面用户,角色,权限这三者是密不可分的,在数据库中就可以通过下面这张图来表达他们三者之间的关系:
萌萌哒的瓤瓤
2021/01/13
3.5K0
Mybatis获取自增长的主键id
jmeter aggregate report
Aggregate Report 是 JMeter 中的一个元素,用于收集测试结果并生成汇总报告。这个报告提供了一种简洁的方式来看到所有请求的性能统计数据。以下是 Aggregate Report 中包含的主要信息:
运维开发王义杰
2023/08/16
2550
jmeter aggregate report
WordPress 如何获取分类/标签的ID
鼠标移动到编辑处,看到浏览器底部出现链接,其中的tag_ID=5中这个5就是分类的ID,标签同理。
可定
2020/04/20
6K0
WordPress 如何获取分类/标签的ID
点击加载更多

相似问题

如何修复“appendingPathComponent”不可用:在URL错误上使用appendingPathComponent

11

appendingPathComponent‘不可用:在URLinstad.a上使用appendingPathComponent

21

解决appendingPathComponent错误的模糊使用

11

Swift 3中“appendingPathComponent”错误的模糊用法

15

appendingPathComponent之后的不同路径(_:)

12
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档