Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/88.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP数组字符串键在末尾添加数字_Php_Jquery_Arrays_Json - Fatal编程技术网

PHP数组字符串键在末尾添加数字

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(); $

大家好

我有一段代码,其中我创建了一个JSON字符串,我有一个动态的数据数,所以我需要的也是一个键的动态名称

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非常感谢!