MySQL/PHP:返回两列作为关联数组作为key =>值对
问题描述:
我很抱歉,如果这可能之前已经问过,或者这是不可能的,但这是我希望从一个使用MySQL的特定表。MySQL/PHP:返回两列作为关联数组作为key =>值对
说,我下表:
+-------------+------------------+
| property | value |
+-------------+------------------+
| style | unisex |
| color | blue |
| type | small |
+-------------+------------------+
我想能够将两列property
和value
取作为从MySQL
关联数组,所以最后的结果将是:
array(
'style' => 'unisex',
'color' => 'blue',
'type' => 'small',
);
只是为了提供上下文,这样的人不要误解我问什么:
我已经知道我可以d o一旦我从通用的SQL
声明中返回结果,PHP将返回每行的列为key => value
对。我只是想知道是否可以将一列的值作为键返回,并将第二个值作为从MySQL
直接继续的PHP
中每行的键的值。
答
没有开箱即用的取模方式,它会给你一个像这样索引的数组(如何知道哪个是关键?如果有多于2个的列?)。
您可以使用PDO::FETCH_NUM
和array_map()
建立一个新的阵列,利用第一列的关键,第二个作为值:
<?php
$query = $db->prepare("SELECT property, value FROM table");
$query->execute();
$row = $query->fetchAll(PDO::FETCH_NUM);
$rowFormatted = array_map(function ($el) {
return [$el[0] => $el[1]];
}, $row);
var_dump($rowFormatted);
旁注:它看起来像你的标题为实体 - 属性值反模式。这将带给你沿途的问题,所以考虑重新设计你的模式。看看这个资源,以了解更多:
能否请您看看mysqli_fetch_array – Tarun
当然,您可以编写代码,将转换设置这样的结果。 – Sammitch
我知道如何在'PHP'中编写代码来完成这一步,一旦我从MySQL查询中得到结果。我只是想知道是否可以直接从SQL中完成。 –