簡體   English   中英

如何在PHP中創建二維數組並使用Javascript進行迭代

[英]How to create a two-dimensional array in PHP and iterate through it with Javascript

我目前正在嘗試執行以下操作:

  1. 從我的image.js代碼中請求一個PHP文件
  2. 在請求調用中-從我的mysql數據庫中查詢數據並將其保存在PHP數組中
  3. 將數組作為JSON對象返回到image.js。

我得到了nr 1 + nr 3的介紹-我所苦惱的是如何將我的數據庫屬性正確保存到PHP數組中,然后遍歷json回調中的每個記錄

數據庫屬性示例:

player_id (unique key) || player_name || player_country || player_image || player_league ||

問題/挑戰1:保存陣列(這是我不確定的問題)

while ($row = mysql_fetch_assoc($res))
{
    $myCallbackArray[] = array($row['player_id'], $row['player_name'], $row['player_country'], $row['player_image']);
}

-下面的數組將只是一個“平面數組”,沒有維度,這是基於將所有相應的屬性保存在單獨的player_id下嗎?

為了提供一些背景信息-並假設數組很好,然后我們在“下一步”中將其發送回JS

$callback = $myCallbackArray;
echo json_encode(array('returned_val' => $callback));

問題/挑戰2 :在JS中訪問數組值(這是我不確定的問題)

      //Save the data
    var url = "request.php"; //

      var request = $.ajax({
             type: "POST",
             url: url,
             dataType: 'json',
             data: { user_id: id},

             success: function(data)
             {

//HERE WE HANDLE THE RETURNED ARRAY
if(data.returned_val) {

                  for( var i = 0; i < data.returned_val.length; i++ ){
//HERE I WOULD LIKE TO MAKE THE DIFFERENT ATTRIBUTES ACCESSABLE
                  } 
             },
             error:function() {
                //FAILURE
            }   

});
return false;

-因此,在這一部分中,我不確定如何從PHP中實際處理多維數組。 我假設我們需要將其保存在Javascript數組中,然后我們可以通過一個foreach循環來迭代/訪問每個值-但是,再次,我不確定如何?

我建議使用json_encode:

$myCallbackArray []= (object) array(
    "player_id" => '...',
    "player_name" => '...',
    "player_country" => '...',
    "player_image" => '...',
    "player_league" => '...'
);

$json = json_encode($myCallbackArray);

$ json實際上是以下內容:

[{"player_id":"...","player_name":"...","player_country":"...","player_image":"...","player_league":"..."}]

這是有效的JSON,您可以在javascript中輕松使用它。

我認為您在成功函數中訪問數據錯誤,數據作為數組返回。 這是一個例子:

var request = $.ajax({
    type: "POST",
    url: url,
    dataType: 'json',
    data: {user_id: id},
    success: function(data){

        var myval = data["returned_val"];

        alert(myval);

    },
    error:function() {
        //FAILURE
    }
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM