【问题标题】:PHP, Laravel: Eliminate Specific Complex Array from JSONPHP,Laravel:从 JSON 中消除特定的复杂数组
【发布时间】:2021-04-08 04:21:59
【问题描述】:

我目前正在为我的项目使用 Laravel 开发一个 API,概念:

  1. 从 MySQL 检索 JSON 数据。
  2. 从前端接收用户输入(字符串)。
  3. 将 JSON 和字符串输入转换为具有相似结构的数组。这里的数组结构基本是["ObjectA", "ObjectA_quantity", "ObjectB", "ObjectB_quantity", ...]
  4. 基本上,根据User Input's Array得到的每个对象,剔除Database's Array中每个对象的数量。例如,如果数据库的数组得到["pizza", "1", "burger", "2"],而用户输入的数组得到["pizza", "1"],则该方法的输出预期为["burger", "2"]

我开发的方法会给出不一致和令人困惑的输出,例如对于某些对象,它运行良好,对于其他对象,它不会消除任何东西,如果用户输入的数组太大(> 1 个对象),它也不会t消除任何东西。我真的很欢迎不同的方法或任何其他可以提供上述预期输出的方法。非常感谢

这是我开发的方法的源代码:(方法位于:else if ($transactionGetter->type == 'return'),第 148 行等)

https://github.com/andre-nk23/packme-backend/blob/master/app/Http/Controllers/API/TransactionController.php

【问题讨论】:

    标签: php arrays json laravel api


    【解决方案1】:

    如果是 JSON,则必须在访问前解码值

    $transactionGetter=json_decode($transactionGetter);
    

    【讨论】:

    • 是的,如果您阅读了源代码,我已经对 JSON 进行了解码和编码,并且运行良好,但是有一些错误,我不明白为什么会发生这种情况
    • 我已经在上面提到过,该程序仅在某些对象上运行良好。例如,我要消除的数组是:[“Pizza”,“2”,Burger,“1”] 和用户输入:[“Pizza”,2],对于这种情况,它可以工作([”汉堡”,“1”])。但是对于其他情况,如果用户输入让说 ["Burger', "1"],则该数组根本不会被消除。因此,它适用于某个数组元素,但不适用于另一个。同样当用户输入数组太长,不行。
    猜你喜欢
    • 2021-02-10
    • 2016-07-30
    • 1970-01-01
    • 2022-01-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-26
    相关资源
    最近更新 更多