2016-09-29 90 views
-1

我想要從數據庫表中獲取鍵和值,我需要它將它添加到數組中。那麼我怎樣才能將它設置爲數組?如果我使用array_push(),那麼它將從0開始索引,並且我需要從表中提取的數組索引。在php中定義數組鍵值php

我的表名爲array_val

重點價值
K1         VAL1
K2         VAL2

+0

這些代碼在哪裏? – Ghost

+0

您可能想要重新設計您的數據庫,因爲EAV模式通常被認爲是反模式。如果您發佈有關數據庫的更多詳細信息以及存儲在其中的數據,我們可能會幫助您提供更好的解決方案。 - https://en.wikipedia.org/wiki/Entity%E2%80%93attribute%E2%80%93value_model – ChristianF

+0

對於PHP 5.5+ [array_column](http://php.net/manual/en/function.array -column.php)也可以使用。檢查第三個參數。 – Jigar

回答

0
$array_val = array(); 

$results = mysql_fetch_array($query); 
foreach($results as $key => $val){ 
    $array_val[$key] = $val 

} 
+0

這對我有用,謝謝:) –

0

我認爲你正在尋找沿東西mysqli_fetch_assoc()如果你正在使用MySQLi。

+0

不幸的是,這不是作者所要求的,因爲他使用的是EAV表格。 – ChristianF

+0

@ChristianF哈哈,我的壞,我不知道什麼是EAV表。他在哪裏提到他正在使用它? – 2016-09-29 07:00:39

+0

如果您查看他發佈的示例「數據」,您會注意到有兩列。其中一個包含「鑰匙」,另一個包含「價值」。我在這個問題的評論中添加了維基百科鏈接,它解釋了EAV模式。 – ChristianF

0

另一種解決方案

while ($row = $result->fetch_assoc()){ //list of sql results 
$my_array[$row["key"]]=$row["value"]; 
} 

關鍵是你的表中的字段。表是:下面的代碼array_val

+1

這個!這是正確的 –

0

月可以幫你

簡單,使用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']; 
    } 
} 
+1

我認爲應該是'$ arr [$ row ['key']] = $ row ['value']' – RamRaider