2017-04-07 181 views
1

美好的一天!PHP數組字符串鍵添加數字在末尾

我在那裏我創建一個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

你需要的是把一個成員放在一個唯一索引上。 –

+0

是的,我試圖使用字符串類型的索引.. – Siege21x

+0

@ Siege21x更好的解決方案給我。檢查並嘗試一次 –

回答

1

1.Suggestion:-stop使用棄用的mysql_* .Move +移除(PHP5 + PHP7)版本朝向mysqli_* OR PDOprepared statements(防止SQL注入)

沿2.爲什麼創建不必要的陣列和多個push.No需要要做到這一點。像下面這樣: -

$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 
} 
+0

這太棒了!感謝這種將數據保存在數組中的想法。我將閱讀mysql和mysqli之間的區別,以瞭解你在說什麼:D非常感謝! – Siege21x

1

如果你想達到的members數組包含鍵作爲member0member1等個人記錄,那麼你可以爲進行:

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

感謝您的回答!我一定會嘗試一下,並宣佈這個答案,如果它能工作的話!謝謝! :D – Siege21x

相關問題