0

私は以下のようなjavascript動的配列作成者コードを持っています

function createArray() {

    var myArr = new Object();
    myArr[0] = createSubArray('apple');
    myArr[1] = createSubArray('Mango');
    myArr[2] = createSubArray('Pineapple');
    myArr[3] = createSubArray('Grape');
    document.getElementById("a").innerHTML = JSON.stringify(myArr);
    return myArr;

}


function createSubArray(name){
    var arr = new Object();
    elems = document.getElementsByName(name);
    for (var i=0;i<elems.length;i++){
        if (elems[i].checked){
            arr[name] =  elems[i].value;
            arr['price'] =  elems[i].getAttribute('data-price');
        }
    }
    return arr;
   }

arrayこのコードでは、値をではなくとして送信する必要がありますobjectnew Object();to new Array();in createArray関数を変更してみましたがjson_decode、次のような結果が得られました

array
  0 => 
    object(stdClass)[1]
      public 'apple' => string 'light' (length=5)
      public 'price' => string '10' (length=2)
  1 => 
    object(stdClass)[2]
      public 'Mango' => string 'light' (length=5)
      public 'price' => string '30' (length=2)
  2 => 
    object(stdClass)[3]
      public 'Pineapple' => string 'light' (length=5)
      public 'price' => string '50' (length=2)
  3 => 
    object(stdClass)[4]
      public 'Grape' => string 'dark' (length=4)
      public 'price' => string '80' (length=2)

createSubArray関数で新しいオブジェクトを変更した場合、値が取得されません。以下を確認してください。

createArray関数で新しいオブジェクトが新しい配列に変更されました

createArrayおよびcreateSubArray関数で新しいオブジェクトが新しい配列に変更されました

オブジェクトを配列に変更するにはどうすればよいですか?

親切にこれを解決するのを手伝ってください

4

1 に答える 1

4
$array = json_decode($json, true);

2番目のパラメーターを、の代わりに連想配列を返すようにtrue強制するように設定します。json_decodestdClass

于 2012-09-18T04:32:48.517 に答える