【问题标题】:Laravel numeric array in select results选择结果中的 Laravel 数值数组
【发布时间】:2016-03-22 07:30:57
【问题描述】:

我正在使用 Lumen 设置一个微服务来频繁轮询数据库,并通过 wamp 路由器将数据集分发给多个客户端。数据库查询存储在存储过程中,这就是我在控制器中执行以下操作的原因:

$result = DB::select($query);

return $result;

返回给出以下数据集:

[
    {
        "0": "012345",
        "1": "Moby Dick",
        "2": "Herman Melville",
        "3": "Hardcover",
        "isbn": "012345",
        "title": "Moby Dick",
        "author": "Herman Melville",
        "type": "Hardcover"
    },
    {
        "0": "123456",
        "1": "Laravel: Code Bright",
        "2": "Dayle Rees",
        "3": "Ebook",
        "isbn": "123456",
        "title": "Laravel: Code Bright",
        "author": "Dayle Rees",
        "type": "Ebook"
    },
    {
        "0": "234567",
        "1": "Easy Laravel 5",
        "2": "W.J. Gilmore",
        "3": "Ebook",
        "isbn": "234567",
        "title": "Easy Laravel 5",
        "author": "W.J. Gilmore",
        "type": "Ebook"
    }
]

我想删除关联键值对前面的数字键值对。我该怎么做?

提前致谢!

编辑:我尝试过的事情:

$result = DB::select($query)->get(); // Gives: Call to a member function get() on array. For obvious reasons

像 Matei 这样的肮脏黑客说:循环遍历数组并删除键为数字的 KVP。哪个可行,但我认为 Laravel/Lumen 框架提供了更清洁的解决方案,但我找不到。

【问题讨论】:

  • 你试过什么?向我们展示您尝试过的代码。 SO 不是免费的编码服务。
  • @JamieSterling,我更新了我的问题。不是在寻找免费的编码服务。我已经让它像 Matei 所说的那样以一种肮脏的方式工作,但我的目标是干净的代码,并充分利用 laravel/lumen 框架。所以这个问题与那个框架有关。

标签: php arrays database laravel lumen


【解决方案1】:

config/database.php 中,您可以将'fetch' => PDO::FETCH_CLASS, 更改为'fetch' => PDO::FETCH_ASSOC,

您可以使用array_reducearray_filter 喜欢:

$result = json_decode(DB::select($query), true);

$result = array_reduce($result, function ($result, $item) {
     $result[] = array_filter($result, function ($key) {
         return !is_numeric($key);
     }, ARRAY_FILTER_USE_KEY)

     return $result;
}, array());

return json_encode($result);

注意:如果 DB stmt 返回一个数组,而不是一个 json 编码的字符串,那么您必须删除 json_decodejson_encode 函数调用。

【讨论】:

  • 谢谢马太!我得到了一些类似的代码,但我实际上正在寻找“laravel”的方式来做到这一点。
  • 我也更新了我的答案。请检查是否是你需要的
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-05-18
  • 1970-01-01
  • 2019-05-22
  • 2015-12-16
  • 1970-01-01
  • 2021-09-24
  • 2016-04-13
相关资源
最近更新 更多