2016-01-14 94 views
0

我想創建一個數組,其中包含兩個數組,但是當我打印它或將其轉換爲json時,我得到一個對象,該對象的變量索引名稱用於創建子陣列。數組創建對象索引名稱變量

$var1 = []; 
    $var2 = []; 

    if ($stmt = $mysqli->query('SELECT id FROM table1')) { 
     while($id = $stmt->fetch_object()) { 
      $var1[] = $id; 
     } 
     $stmt->close(); 
     unset($id); 
    } 

    if ($stmt = $mysqli->query('SELECT id FROM table2')) { 
     while($id = $stmt->fetch_object()) { 
      $var2[] = $id; 
     } 
    } 

    return array($var1, $var2); 

當我打印var_dump($result);

array(2) { [0]=> array(1) { [0]=> object(stdClass)#14 (1) { ["id"]=> string(1) "1" } } [1]=> array(0) { } } 

爲什麼會出現與索引名ID的對象?

我只需要含有2子陣列的簡單陣列,並打印出來內部的兩個select元素:

$.get('/get?op=4', function (data) { 
     var content = data, 
      sale = content[0], 
      rent = content[1]; 
      alert(sale); 
     $('select[name="lists-sale"]').html(sale); 
     $('select[name="lists-rent"]').html(rent); 
    }); 

我回聲和編碼在JSON取之於在/get?op=4文件中的函數返回。

回答

3

你打電話給$ stmt-> fetch_object(),你會得到你所要求的 - 一個代表從數據庫返回的一行數據的對象。

更換

while($id = $stmt->fetch_object()) { 
    $var1[] = $id; 
} 

while($row = $stmt->fetch_object()) { 
    $var1[] = $row->id; 
} 

獲取ID數組。

+0

Oooh,你剛到我那裏:) – MajorCaiger

+0

嗯我不知道,所以這就是爲什麼我得到一個對象和數字作爲字符串,而不是一個整數...謝謝! (我會在3分鐘內接受) –

0

$stmt->fetch_object()獲取包含結果的對象。

對象代表您選擇的整行,而不是單個列。

如果您選擇多個列,您的對象將包含多個屬性。

+1

從何時'mysqli'貶值? – Matt

+0

我的不好,被mysql_ *函數混淆了 – MajorCaiger

+0

PDO還是更好:) – MajorCaiger

相關問題