我有一个来自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个请求...确保我可以为每个请求暂停,但效率不高...... < / p>
API会读取这样的内容......
"id" => 654,
"names" => "John", // <-- Lets look at this...
"description" => "Fancy desc...",
"picture_url" => "http"//domain.com/assets/user/654/av_654_dd.jpg";
所以在我输出数组之前,我有一段时间的SQL查询来显示信息......
while ($names = $listnames->fetch_assoc()) {echo $names['names']. ', ';}
这将显示...... John,Karl,Lisa,Mark ......所以这个结构我很乐意将它放入我的阵列......事情是我不能在=&gt之后放一会儿; ......那会很傻,也不行......
"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";
如果我只需要一个名字,那么就没有问题...但是在这种情况下我需要将所有名称作为值,所以,如何从WHILE循环中获取结果....所以我可以在别处使用那个结果......
感谢您抽出时间..
答案 0 :(得分:1)
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;
)
);
答案 1 :(得分:0)
我们不知道您如何访问API。 如果这是REST API,则只能执行开发人员计划的操作。 如果这是一个框架或另一个库,您可以编辑它。
你应该收到你的结果:
$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(); while($ row = $ listnames-&gt; fetch_assoc()){ $ results [] = $ row; }
如果要在输入中设置多个可能的名称,开发人员应该使用值数组进行开发。 对于名字,他们只需编码:“LIKE”.implode(“',LIKE'”,$ names)。“'” 他们还可以添加'%'以允许更多值,例如'约翰'代表'约翰尼'。
我认为我们需要更多信息来真正帮助你。