php - 如何使用 PHP 根据该值将具有匹配列值的 MySQL 查询结果放入关联数组?

标签 php mysql arrays json

我有一个垂直模式的数据库,解释说:

Key, Cat, UID, Var, Val, 等等... 其中 Key 是索引,Cat 是类别,UID 是一组行的标识符,var 是行表示的值的名称,Val 是该值。所以几行看起来像这样:

key cat   uid    var          val
 1   1   98765  name         David
 2   1   98765  description  handsome, young, sporting, 
 3   1   98765  phone        123-456-789
 4   1   98765  email        david@handsome.com
 5   1   12345  name         Jason
 6   1   12345  description  cool, hot, tall, 
 7   1   12345  phone        222-555-1244
 8   1   12345  email        jason@cool.org
 8   1   12345  website      www.jason.com

所以 query/php 的目标是从指定的类别中获取所有行,然后根据具有该 uid 的所有行的 uid 返回一个关联数组。结果会有点像

results{
["98765"] => ["name"] = David
          => ["description"] = handsome, young, sporting,
          => ["phone"] = 123-456-789
          => ["email"] = david@handsome.com
["12345"] => ["name"] = Jason
          => ["description"] = cool, hot, tall,
          => ["phone"] = 222-555-1244
          => ["email"] = jason@cool.org
          => ["website"] = www.jason.com
}

希望这是可以理解的,如果我的问题不清楚,请告诉我。

最佳答案

尝试这样的事情:

$category = 1;
$result = mysql_query( 'SELECT * FROM table WHERE cat = ' . intval( $category));
$results = array();
while( $row = mysql_fetch_array( $result))
{
    $results[ $row['uid'] ][ $row['var'] ] = $row['val'];
}
mysql_free_result( $result);

关于php - 如何使用 PHP 根据该值将具有匹配列值的 MySQL 查询结果放入关联数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8175542/

相关文章:

PHP 获取 JSON POST 数据

php - 未找到 ZF2 类 PDO,但在 php 配置中启用了 PDO

arrays - Flash AS3,如何使用整数键索引 HashMap

mysql - 两个 mariadb 实例在 docker 中使用相同的持久存储

arrays - CoffeeScript:循环遍历数组中的对象

arrays - 获取数组中项目的所有可能组合,在 Swift 中没有重复的组

php - 从同一个表中选择不同的结果

PHPUnit 提示 Selenium

mysql - Left 和 Right Join 提供相同的输出

java - 如何将类对象转换为通用对象类型?