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