【问题标题】:How to remove extra square bracket from result array object?如何从结果数组对象中删除多余的方括号?
【发布时间】:2026-02-01 23:25:01
【问题描述】:

这是我的结果 JSON,我正在尝试删除多余的方括号,但没有任何效果

 "feedList": [
        [             // Want to remove this brackets 
            {
                "feed_id": "1",
                "feed_user_id": "31",
                "feed_privacy": "1",
                "modified_date": "2021-04-23 13:51:05"
            }
        ],            // Want to remove this brackets 
        [             // Want to remove this brackets 
            {
                "feed_id": "1",
                "feed_user_id": "31",
                "feed_privacy": "1",
                "modified_date": "2021-04-23 13:51:05"
            }
        ]           // Want to remove this brackets 
       ]  

我想删除多余的方括号,这是我的 SQL 结果,试图让它正确无济于事

请帮忙

foreach ($dataArray as $friend)
{
    if (in_array($user_id, $dataArray))
    {
        $query_s = $this
            ->db
            ->where('feed_user_id', $user_id)->get('tbl_feed');
        $result_f = $query_s->result();
    }
    else
    {
        $query_f = $this
            ->db
            ->where('feed_user_id', $friend)->where('feed_privacy', 2)
            ->get('tbl_feed');
        $result_f = $query_f->result();
    }
    if (!empty($result_f)) 
    $allData[] = $result_f;
}
return $allData;

这是产生上述结果的代码

【问题讨论】:

  • 请发布生成此代码的代码,因为这是您应该进行更改的地方(而且我们不知道您需要更改什么而不看您当前正在做什么)
  • “并试图让它正确无济于事” - 向我们展示你当时实际尝试过的内容,而不是给我们这样的声明,这些声明是 any i> 有用的信息。
  • @MagnusEriksson 已添加产生结果的代码,希望得到答案
  • 您的$result_f 可能是一个数组,其中包含一个对象或另一个数组。这看起来像是一个框架的数据库抽象——你在用什么?
  • 哦等等!我知道发生了什么事。函数result() 总是返回一个记录数组,而您的查询似乎只返回一条记录。所以$allData 包含来自不同查询的多个结果数组。 Tbh,您应该从头开始重新考虑这一点。如果您的in_array() 返回true(正如@El_Vanja 指出的那样,它总是会这样),您将一遍又一遍地获取相同的记录。你到底想用这段代码做什么?数据库是什么样的,它包含什么(示例数据),所有变量都包含什么以及您真正想要做什么?

标签: php mysql arrays json codeigniter


【解决方案1】:

使用array_merge($allData,$result_f); 代替$allData[] = $result_f;

【讨论】:

  • 稍微解释一下可能会有所帮助。问题是什么?您的代码是如何解决的?