簡體   English   中英

PHP關聯多維數組

[英]PHP Associative Multidimensional Array

我確實有一個查詢要從MySQL數據庫中獲取兩個用戶。 我正在使用PDO。

這是使用fetchAll(PDO::FETCH_ASSOC)返回的數組

array(2) {
  [0]=>
  array(8) {
    ["user_id"]=>
    string(1) "4"
    ["last_activity"]=>
    string(10) "1367361208"
    ["status"]=>
    string(1) "1"
    ["username"]=>
    string(4) "WiS3"
    ["gender"]=>
    string(1) "1"
    ["a_last_update"]=>
    string(10) "1365785841"
    ["user_level"]=>
    string(1) "6"
    ["level_color"]=>
    string(6) "FC0000"
  }
  [1]=>
  array(8) {
    ["user_id"]=>
    string(2) "19"
    ["last_activity"]=>
    string(10) "1367359866"
    ["status"]=>
    string(1) "2"
    ["username"]=>
    string(5) "Admin"
    ["gender"]=>
    string(1) "1"
    ["a_last_update"]=>
    string(10) "1366690422"
    ["user_level"]=>
    string(1) "7"
    ["level_color"]=>
    string(6) "008AFF"
  }
}

由於行數組是數字,要從中獲取數據,我必須執行$row[0][field]$row[1][field]

但是我希望它可以使用user_id進行關聯,因此我可以執行$row[user_id][field]

有可能的? 我該怎么做?

抱歉,沒有內置的功能。 您必須使用PDOStatement::fetch()並自己填充數組:

$result = array();
while($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
    // note that $row['user_id'] will currently a string
    // if you need integers as indexes then use intval($row['user_id']);
    $result[$row['user_id']] = $row;
}

// dump all records 
var_dump($result);

// dump username of user with uid = 4
var_dump($result['4']['username']);

它已經是一個關聯數組,包含多個不同的記錄。

使用foreach分別獲取每個記錄:

foreach($rows as $id => $row)
{
    echo "Record n°" . $id . ": " . $row['user_id'] . "<br>";
}

暫無
暫無

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

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