gpt4 book ai didi

php - 获取 MYSQL 结果为 key=>value 格式,尽管 key 不是字段名

转载 作者:行者123 更新时间:2023-11-30 22:35:15 24 4
gpt4 key购买 nike

(我真的只需要一些 MYSQL 魔法,但我会解释更多我在做什么)

我正在构建一个翻译系统。我知道一种方法是为我的每种内容类型创建一个翻译表。例如,如果我有一个帖子表,那么我会有一个单独的帖子翻译表:

tbl posts
----------
id
title
content

tbl posts_translations
---------
id
title
content
locale

然后,如果我执行左连接并使用 PHP 获得结果,我将获得我想要的所有数据作为键=>值对,并且我可以在我的应用程序中使用 $row['p_title']

因为我将有多种内容类型要翻译,而不是以这种方式维护字段名称,所以我可以用一个来达到相同的结果吗?

tbl translations
--------------------
id
type i.e 'posts'
type_id i.e. posts.id
key i.e. 'content', 'title'
value i.e. 'this is a title'
locale

因此,为了获得单个帖子的所有翻译键,我会:

SELECT key, value FROM translations 
WHERE type = 'posts'
AND type_id = 3

这会给我这样的结果集:

$row = array(
'key' => 'title',
'value' => 'This is a title'
)

但我想要的是:

$row['title'] => 'This is the title'

当然我可以执行 PHP 循环来格式化数据,但是 MYSQL 中是否有某些东西可以为我呈现这些数据而无需循环每个结果的开销?

注意

我希望生成的数组键是从列/字段值而不是列/字段名称生成的。

最佳答案

没有单一步骤的方法。

自己写一个类似的子程序

// Given an array of arrays (not ASSOC), use the first column as "key"; second as "value"
function KeyValue($rows)
{
$kv = array();
foreach ($rows as $row)
{
$kv[$row[0]] = $row[1];
}
return $kv;
}

关于php - 获取 MYSQL 结果为 key=>value 格式,尽管 key 不是字段名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32738344/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com