首页 > 解决方案 > 在 PHP 中多次返回

问题描述

所以我试图在 foreach 循环中返回多个值。代码如下所示:

$result = DB::query("SELECT * FROM products WHERE username=%s", $user['username']);
foreach ($result as $results) {
  return response()->json(["success" => true, "list" => [["name" => $results['name'], "key" => $results['key'], "expire" => $results['expire']]]]);
}

我正在使用 Meekrodb,所以你知道。所以我基本上有一个包含 x 行数的数据库。根据注册人的用户名,每一行都有不同的用户名。所以它会检查用户名是否匹配。它适用于第一行,但如果我有不止一行,它不想返回第二行,只返回第一行。

所以是的,而不是返回代码:
{"success":true,"list" [{"name":"whatever","key":"123","expire":"Never"}]}
尽管多行具有相同的用户名。

它应该返回如下内容:

{"success":true,"list" [{"name":"whatever","key":"123","expire":"Never"}]}
{"success":true,"list" [{"name":"whatever2","key":"456","expire":"Tomorrow"}]}


这可能看起来有点令人困惑,但我真正想要的只是返回多个值或朝那个方向的东西。

标签: php

解决方案


构建并返回数组,如下所示

    $result = DB::query("SELECT * FROM products WHERE username=%s", $user['username']);
    foreach ($result as $results) {
    $data = array();
    foreach ($result as $results) {
        $data["success"] = true;
        $data["list"]['name'] = $results['name'];
        $data["list"]['key'] = $results['key'];
        $data["list"]['key'] = $results['key']
        $data["list"]['expire'] = $results['expire']
        //return response()->json(["success" => true, "list" => [["name" => $results['name'], "key" => $results['key'], "" => $results['expire']]]]);
    }
    return echo json_encode($data);

推荐阅读