PHP数组字符串键在末尾添加数字
大家好 我有一段代码,其中我创建了一个JSON字符串,我有一个动态的数据数,所以我需要的也是一个键的动态名称PHP数组字符串键在末尾添加数字,php,jquery,arrays,json,Php,Jquery,Arrays,Json,大家好 我有一段代码,其中我创建了一个JSON字符串,我有一个动态的数据数,所以我需要的也是一个键的动态名称 if (mysql_num_rows($result) > 0) { $response["members"] = array(); $x = 0; $members = array(); while ($row = mysql_fetch_array($result)) { $members = array(); $
if (mysql_num_rows($result) > 0) {
$response["members"] = array();
$x = 0;
$members = array();
while ($row = mysql_fetch_array($result)) {
$members = array();
$members["member" + (string)$x] = array();
$member["member_id"] = $row["member_id"];
$member["firstname"] = $row["firstname"];
$member["mi"] = $row["mi"];
$member["lastname"] = $row["lastname"];
$member["email"] = $row["email"];
$member["username"] = $row["username"];
$member["password"] = $row["password"];
$member["guild_id"] = $row["guild_id"];
$member["guild_name"] = $row["guild_name"];
$member["guild_code"] = $row["guild_code"];
array_push($members["member" + (string)$x], $member);
$x++;
}
array_push($response["members"], $members);
echo json_encode($response);;
}
在JQuery中,这种方法很有效。。我的问题是,有什么方法可以用php实现它吗?如果您知道我很高兴知道…如果您想实现
成员
数组包含单个记录,其键为成员0
,成员1
,等等,那么您可以按以下步骤进行操作:
if (mysql_num_rows($result) > 0) {
$x = 0;
$members = array();
while ($row = mysql_fetch_array($result)) {
$member = array();
$member["member_id"] = $row["member_id"];
$member["firstname"] = $row["firstname"];
$member["mi"] = $row["mi"];
$member["lastname"] = $row["lastname"];
$member["email"] = $row["email"];
$member["username"] = $row["username"];
$member["password"] = $row["password"];
$member["guild_id"] = $row["guild_id"];
$member["guild_name"] = $row["guild_name"];
$member["guild_code"] = $row["guild_code"];
$members["member$x"] = $member;
$x++;
}
$response["members"] = $members;
echo json_encode($response);
}
1.建议:-停止使用已弃用+已删除(php5+php7)版本的
mysql\u*
。使用mysqli\u*
或PDO
以及准备好的语句(防止Sql注入)
2.为什么要创建不必要的数组和多次推送。不需要这样做。请执行以下操作:-
$response["members"] = array();//put outside
if (mysql_num_rows($result) > 0) {
$x = 0;
while ($row = mysql_fetch_array($result)) {
$response["members"][$x]["member_id"] = $row["member_id"]; //assign value directly to the resultant array
$response["members"][$x]["firstname"] = $row["firstname"];
$response["members"][$x]["mi"] = $row["mi"];
$response["members"][$x]["lastname"] = $row["lastname"];
$response["members"][$x]["email"] = $row["email"];
$response["members"][$x]["username"] = $row["username"];
$response["members"][$x]["password"] = $row["password"];
$response["members"][$x]["guild_id"] = $row["guild_id"];
$response["members"][$x]["guild_name"] = $row["guild_name"];
$response["members"][$x]["guild_code"] = $row["guild_code"];
$x++;
}
}
if(count($response["members"])>0){ //check finally that array is not empty
echo json_encode($response); //echo json encoded array data
}
你需要的是把一个成员放在一个唯一的索引上。是的,我正在尝试使用一个字符串类型的索引。@Siege21x这是我给出的一个更好的解决方案。查考once@AlivetoDie当然可以。我一定要试试看!非常感谢!他能拥有它,伙计。我投票赞成你的答案。谢谢!谢谢你的回答!我一定要尝试一下,并宣布这是答案,如果它将工作!谢谢这太棒了!感谢您提出了在阵列中保存数据的想法。我将阅读mysql和mysqli之间的区别,以了解您在说什么:D非常感谢!