Php MySQL将多个结果查询到单个值数组中

Php MySQL将多个结果查询到单个值数组中,php,mysql,arrays,Php,Mysql,Arrays,我从一个API获得了以下数组 $arrs = array( "id" => $ids, "names" => $names, "description" => $desc, "picture_url" => $p_img; ); API需要这些信息才能工作不幸的是,每个请求只能有一个数组,所以我向开发人员发送了这个问题: 如何列出多个项目,例如: $arrs= array(

我从一个API获得了以下数组

$arrs =   array(
    "id"            => $ids,
    "names"         => $names,
    "description"   => $desc,
    "picture_url"   => $p_img;
    );
API需要这些信息才能工作不幸的是,每个请求只能有一个数组,所以我向开发人员发送了这个问题:

如何列出多个项目,例如:

  $arrs=   array(
"items1" =>   array (
    "id"            => $ids,
    "names"         => $names,
    "description"   => $desc,
    "picture_url"   => $p_img;
    )
"items2" =>   array (
    "id"            => $ids,
    "names"         => $names,
    "description"   => $desc,
    "picture_url"   => $p_img;
    )
"items3" =>   array (
    "id"            => $ids,
    "names"         => $names,
    "description"   => $desc,
    "picture_url"   => $p_img;
    )
));
他们告诉我,目前还不可能,所以,这个数组的“重要”部分是“名称”,当它用于单个项目时,没有问题,我得到一个名称,完成了,没有问题,但是如果我有多个名称呢?我可以发送多个请求,但这将被视为洪水或类似的东西。。。只需在一秒钟左右的时间内成像300个名称=300个请求。。。当然,我可以暂停每个请求,但效率不高

API将读取如下内容

"id"            => 654,
"names"         => "John", // <-- Lets look at this...
"description"   => "Fancy desc...",
"picture_url"   => "http"//domain.com/assets/user/654/av_654_dd.jpg";
这将显示。。。约翰,卡尔,丽莎,马克。。。所以这个结构我想把它放到我的数组中。。。问题是我不能在=>。。。那将是愚蠢的,它不会工作

"id"            => 654,
"names"         => "John, Karl, Lisa, Mark", // <-- Lets look at this...
"description"   => "Fancy desc...",
"picture_url"   => "http"//domain.com/assets/user/654/av_654_dd.jpg";
“id”=>654,
“姓名”=>“约翰、卡尔、丽莎、马克”、/“花式描述…”,
“picture_url”=>“http//domain.com/assets/user/654/av_654_dd.jpg”;
如果我只需要一个名称,那么就没有问题了……但在这种情况下,我需要将所有名称作为一个值,那么,如何从WHILE循环中获得结果……以便我可以在其他地方使用该结果


感谢您抽出时间..

我们不知道您如何访问API。
while ($names = $listnames->fetch_assoc()) { 
     $name_array[] = $names['names'];
}

$arrs=array(
"items1" =>   array (
    "id"            => $ids,
    "names"         => implode(', ', $name_array),
    "description"   => $desc,
    "picture_url"   => $p_img;
    )
);
如果这是一个RESTAPI,那么您只能执行开发人员计划的操作。 如果这是一个框架或另一个库,您可以编辑它

你应该收到这样的结果:

$arrs =   array(
    array(
        "id"            => 1,
        "names"         => 'MyName',
        "description"   => 'MyDesc',
        "picture_url"   => 'MyPic',
    ),
    array(
        "id"            => 2,
        "names"         => 'MyName',
        "description"   => 'MyDesc',
        "picture_url"   => 'MyPic',
    ),
);
因此,如果您拥有对SQL结果的完全访问权限,要获取所有结果的数据,您可以执行以下操作: $results=array(); 而($row=$listnames->fetch_assoc()){ $results[]=$row; }

如果您想在输入中设置几个可能的名称,开发人员应该开发一个可能的值数组。 对于名称,它们只需编写代码:“LIKE”“。内爆(“,LIKE”“,$names)。” 它们还可以添加“%”以允许更多值,例如,“John”代表“Johnny”


我想我们需要更多的信息来真正帮助您。

在while:$ret[]=$names['names'],在while:$names=introde(',',$ret)Hello Leonix,API只提供“GET”和“return”“某些信息基于您发送的内容,问题是API是一种新的,因此您只能以特定格式发送信息并以相同的方式接收结果。非常具体,在我在此发布之前,我以与您相同的方式构建数组,但API返回了一个错误。”。。所以我一直在寻找一种在一个数组中发送所有信息的方法,我从没想过可以像David那样使用“内爆”。。。它成功了…谢谢你David,使用“内爆”的方式,你允许我用“,”分隔,在一个数组中发送所有信息,我已经向API的开发人员发送了一封电子邮件,指出你的答案,他们有点喜欢用“,”分隔或任何其他符号发送信息的想法,但老实说,这看起来有点笨拙。。。现在这只是一个多维数组的一个小块。。。谢谢你,你的回答很有帮助,没问题。顺便说一句,在我键入答案之前,ryrysz在一条评论中发布了同样的内容。如果它解决了你的问题,我也会投一票。
$arrs =   array(
    array(
        "id"            => 1,
        "names"         => 'MyName',
        "description"   => 'MyDesc',
        "picture_url"   => 'MyPic',
    ),
    array(
        "id"            => 2,
        "names"         => 'MyName',
        "description"   => 'MyDesc',
        "picture_url"   => 'MyPic',
    ),
);