我想要從數據庫表中獲取鍵和值,我需要它將它添加到數組中。那麼我怎樣才能將它設置爲數組?如果我使用array_push(),那麼它將從0開始索引,並且我需要從表中提取的數組索引。在php中定義數組鍵值php
我的表名爲array_val
重點價值
K1 VAL1
K2 VAL2
我想要從數據庫表中獲取鍵和值,我需要它將它添加到數組中。那麼我怎樣才能將它設置爲數組?如果我使用array_push(),那麼它將從0開始索引,並且我需要從表中提取的數組索引。在php中定義數組鍵值php
我的表名爲array_val
重點價值
K1 VAL1
K2 VAL2
$array_val = array();
$results = mysql_fetch_array($query);
foreach($results as $key => $val){
$array_val[$key] = $val
}
這對我有用,謝謝:) –
我認爲你正在尋找沿東西mysqli_fetch_assoc()
如果你正在使用MySQLi。
不幸的是,這不是作者所要求的,因爲他使用的是EAV表格。 – ChristianF
@ChristianF哈哈,我的壞,我不知道什麼是EAV表。他在哪裏提到他正在使用它? – 2016-09-29 07:00:39
如果您查看他發佈的示例「數據」,您會注意到有兩列。其中一個包含「鑰匙」,另一個包含「價值」。我在這個問題的評論中添加了維基百科鏈接,它解釋了EAV模式。 – ChristianF
另一種解決方案
while ($row = $result->fetch_assoc()){ //list of sql results
$my_array[$row["key"]]=$row["value"];
}
關鍵和值是你的表中的字段。表是:下面的代碼array_val
這個!這是正確的 –
月可以幫你
簡單,使用while
循環,並創建數據庫記錄的數組元素。
$arr = array();
$sql = "SELECT key,value FROM <tablename>";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
$arr[$row['key']] = $row['value'];
}
}
我認爲應該是'$ arr [$ row ['key']] = $ row ['value']' – RamRaider
這些代碼在哪裏? – Ghost
您可能想要重新設計您的數據庫,因爲EAV模式通常被認爲是反模式。如果您發佈有關數據庫的更多詳細信息以及存儲在其中的數據,我們可能會幫助您提供更好的解決方案。 - https://en.wikipedia.org/wiki/Entity%E2%80%93attribute%E2%80%93value_model – ChristianF
對於PHP 5.5+ [array_column](http://php.net/manual/en/function.array -column.php)也可以使用。檢查第三個參數。 – Jigar