PHP 数组插入无法按预期工作

2024-03-16

我正在尝试插入一些项目(假设nitems),它们都彼此不同,到一个数组。不知何故,最终的数组包括n items, 它们都是相同的项目:最后插入的项目。

这是我的代码:

$searchResults_data = [];
foreach($allowSearch as $searchResultItem) {
    $searchResultJSon->dealid = $searchResultItem['id'];
    $searchResultJSon->title = $searchResultItem['title'];
    //$from->send(json_encode($searchResultJSon)); --- DEBUGGING1 ---
    //$from->send(json_encode($searchResults_data)); --- DEBUGGING2 ---
    $searchResults_data[] =  $searchResultJSon;
}

所以我试图找出为什么......使用DEBUGGING1,DEBUGGING2(在客户端,我收到由$from->send()简单地alert() them).

当发出警报时DEBUGGING1消息 - 我确实看到所有项目都是正确的并且彼此不同。

当发出警报时DEBUGGING2messages - 数组在每个循环中复制最后插入的项目。所以假设我插入nitems,数组中i-th循环将是:[item-i, item-i, item-i, ... item-i] 代替 [item-1, item-2, item-3,...,item-i]


你的问题是你每次循环时都不会创建一个新对象,所以当你按下$searchResultJSon into $searchResults_data您正在推送同一个对象,并且您在循环的最后一次迭代中对其所做的更改反映在all中的值$searchResults_data。您可以通过在每次传递中创建一个新对象来解决这个问题:

$searchResults_data = [];
foreach($allowSearch as $searchResultItem) {
    $searchResultJSon = new StdClass();
    $searchResultJSon->dealid = $searchResultItem['id'];
    $searchResultJSon->title = $searchResultItem['title'];
    //$from->send(json_encode($searchResultJSon)); --- DEBUGGING1 ---
    //$from->send(json_encode($searchResults_data)); --- DEBUGGING2 ---
    $searchResults_data[] =  $searchResultJSon;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PHP 数组插入无法按预期工作 的相关文章

随机推荐

  • 使用 ngrx 的应用程序的最佳结构是什么?

    结构1 reducers index ts Combine all reducers user reducer ts product reducer ts actions index ts Combine all actions user
  • 如何在Java中使用postgresql

    我安装了 postgresql 及其驱动程序 postgresql 9 3 1102 jdbc41 jar 我的目录看起来像 gt SQL gt myJDBC java gt postgresql 9 3 1102 jdbc41 jar 我
  • 如何在mysql中使用sql join

    表名 tbl schedule tr id P K mr id F K sch date doctor id 1 23 01 01 2012 32 2 23 05 01 2012 13 3 22 08 01 2012 14 表名 tbl u
  • Boost - 子进程仍然是僵尸进程

    我编写了简单的代码 以分离的方式运行子进程 boost process child childProcess sleep 10 boost process std in close boost process std out close c
  • 在 Github 上托管 ipython 笔记本

    我维护一个 Github 存储库 当前包含两个 ipython 笔记本文件 我的存储库在这里 https github com tschm MosekRegression https github com tschm MosekRegres
  • 不可重现的 R 包可用性检查

    在检查软件包向量是否需要安装时 我遇到了一个有趣的错误 要求并卸载 lme4 命名空间会在第二次执行时出现错误 但仅当按特定顺序检查其他一些包时才会出现错误 isInstalled lt function package is a pack
  • 有没有办法在Python中使用PhantomJS?

    我想用PhantomJS http phantomjs org in Python http www python org 我用谷歌搜索了这个问题但找不到正确的解决方案 I find os popen 可能是一个不错的选择 但我无法向它传递
  • 具有多个数据库服务器的 ServiceStack OrmLite

    我正在围绕服务堆栈框架构建一个应用程序 并且需要能够访问 Oracle 和 MS Sql Server 中的数据 使用 ORMLite 是否可以做到这一点 似乎我只能为应用程序设置一种方言 或者我错过了什么 是的 这是可能的 并且对此的支持
  • 在 Spring Boot 中全局启用 CORS

    我尝试像这样全局启用 CORS Configuration ComponentScan com example EnableWebMvc public class OriginFilter extends WebMvcConfigurerA
  • 无法在装饰器中捕获 pytest 的结果

    我的 pytest 测试装饰器在调用函数后立即退出装饰器 如果我使用 python 而不是 pytest 运行该文件 效果会很好 这是代码 def dec func def wrapper args kwargs print do some
  • JFreeChart 不会在线程上的每次迭代时显示图形?

    我使用线程在一个类中获取计数器值并写入JFreeChart在另一个线程中 执行时 它交替工作 但只显示最后的图形 它还将 y 轴标签值显示为 Float 但实际检索值是 int 我该如何解决这些问题 XYDataset Dataset Ti
  • 在 Rails 中,哪里是放置需要“随处”可用的方法的正确位置

    我已经将许多小实用方法 例如用于重新格式化或解析字符串等简单对象 放入了 ApplicationHelper 中 但是 模型中的类方法显然无法访问 ApplicationHelper 方法 有一个解决方法 那就是在我的项目中进行洒水 inc
  • 在 Java 中动态加载模块(类)的最佳方法

    我目前正在编写一个需要在不同类型的设备上运行的应用程序 我的方法是制作一个 模块化 应用程序 可以根据需要操作的设备动态加载不同的类 为了使应用程序易于扩展 我的目标是为附加模块 jar 或 class 文件 分配特定路径 而核心程序保持原
  • 如何获取和设置当前网页滚动位置?

    如何获取和设置当前网页滚动位置 我有一个很长的表单 需要根据用户操作 输入进行刷新 发生这种情况时 页面会重置到最顶部 这对用户来说很烦人 因为他们必须向下滚动回到原来的位置 如果我可以在页面重新加载之前捕获当前滚动位置 在隐藏输入中 那么
  • 如何列出包中的所有类和方法/函数 - 具有完整的文件夹/文件路径?

    为了更好地理解包的结构 假设我们有一些包 模块 比如说 somemodule 结构如下 somemodule file1 py fo x a function file2 py bar x a function dir1 file3 py
  • 在 Rails 应用程序中实现投票的最佳方式?

    目前在 Rails 站点上实现投票的最佳插件是什么 我知道的两个是 vote fu http github com peteonrails vote fu 行为可投票 http github com ryanto acts as votab
  • JPA CriteriaBuilder 案例查询

    任何人都可以提供如何使用编写案例查询的示例CriteriaBuilder 以下是使用的示例案例表达式CriteriaBuilder 这适用于 JPA 2 Hashtable caseTable new Hashtable 3 caseTab
  • Jquery视差滚动效果-多方向

    我需要为客户构建一个多方向 JQuery 视差页面 他们基本上希望它以与此类似的方式工作 https victoriabeckham landrover com INT https victoriabeckham landrover com
  • 从 shell 脚本获取 pytest 退出代码

    我正在从 shell 脚本运行 pytest 测试 脚本中的相关行类似于 pytest pytest tests param my param 根据 pytest 文档 运行 pytest 可能会导致六种不同的退出代码 0 5 我的问题是如
  • PHP 数组插入无法按预期工作

    我正在尝试插入一些项目 假设nitems 它们都彼此不同 到一个数组 不知何故 最终的数组包括n items 它们都是相同的项目 最后插入的项目 这是我的代码 searchResults data foreach allowSearch a