在php中定义数组键值php

问题描述:

我想要从数据库表中获取键和值,我需要它将它添加到数组中。那么我怎样才能将它设置为数组?如果我使用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

$array_val = array(); 

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

} 
+0

这对我有用,谢谢:) –

我认为你正在寻找沿东西mysqli_fetch_assoc()如果你正在使用MySQLi。

+0

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

+0

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

+0

如果您查看他发布的示例“数据”,您会注意到有两列。其中一个包含“钥匙”,另一个包含“价值”。我在这个问题的评论中添加了维基百科链接,它解释了EAV模式。 – ChristianF

另一种解决方案

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

关键是你的表中的字段。表是:下面的代码array_val

+1

这个!这是正确的 –

月可以帮你

简单,使用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