dton37910 2017-04-07 07:41
浏览 57
已采纳

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

Good day fellas!

I have this block of code where i create a JSON string and i have a dynamic number of data so what i need is also a dynamic name for a key..

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);;
}

In JQuery this type of method works.. my question is, is there any way i can achieve it using php? If you know i will be very happy to know...

  • 写回答

2条回答 默认 最新

  • doutao1939 2017-04-07 08:12
    关注

    1.Suggestion:-stop using deprecated+removed(php5 +php7) version of mysql_*.Move towards mysqli_* OR PDO along with prepared statements(Prevent Sql Injection)

    2.Why creating unnecessary array and multiple push.No need to do that.Do like below:-

    $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
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 使用ue5插件narrative时如何切换关卡也保存叙事任务记录
  • ¥20 软件测试决策法疑问求解答
  • ¥15 win11 23H2删除推荐的项目,支持注册表等
  • ¥15 matlab 用yalmip搭建模型,cplex求解,线性化处理的方法
  • ¥15 qt6.6.3 基于百度云的语音识别 不会改
  • ¥15 关于#目标检测#的问题:大概就是类似后台自动检测某下架商品的库存,在他监测到该商品上架并且可以购买的瞬间点击立即购买下单
  • ¥15 神经网络怎么把隐含层变量融合到损失函数中?
  • ¥15 lingo18勾选global solver求解使用的算法
  • ¥15 全部备份安卓app数据包括密码,可以复制到另一手机上运行
  • ¥20 测距传感器数据手册i2c