首先我很抱歉,请保持温和,我只是在学习php,我坐下来编写我的基本cms,只是为了练习,但我被卡住了。
我有一个包含以下内容的网站设置表
option | option_value | setting
site_name | My site name | general
site_description | My site description | general
site_keywords | My site keywords | general
我正在做以下选择
"$results = SELECT FROM settings WHERE setting VALUES general"
我的foreach循环
foreach ($results as $result)
{
var_dump($result);
}
我从foreach循环中取回以下结果
array(3) {
["option"]=>
string(16) "site_description"
["option_value"]=>
string(17) "My site description "
["setting"]=>
string(7) "general"
}
array(3) {
["option"]=>
string(13) "site_keywords"
["option_value"]=>
string(14) "My site keywords "
["setting"]=>
string(7) "general"
}
array(3) {
["option"]=>
string(9) "site_name"
["option_value"]=>
string(17) "My site name"
["setting"]=>
string(7) "general"
}
我的问题是有没有办法像这样返回结果
["option"]=>
string(16) "site_description"
["option_value"]=>
string(17) "My site description "
["setting"]=>
string(7) "general"
["option"]=>
string(13) "site_keywords"
["option_value"]=>
string(14) "My site keywords "
["setting"]=>
string(7) "general"
["option"]=>
string(9) "site_name"
["option_value"]=>
string(17) "My site name"
["setting"]=>
string(7) "general"
那么删除array(3)索引并加入它们?抱歉,因为我的英文。也许这不是正确的词,我在网上搜索了很多,但没有找到任何解决方案。
有人可以帮忙吗?
修改
就像我说的那样
foreach($结果为$ result) {
var_dump($result);
}
我从foreach循环中取回以下结果
array(3) {
["option"]=>
string(16) "site_description"
["option_value"]=>
string(17) "My site description "
["setting"]=>
string(7) "general"
}
array(3) {
["option"]=>
string(13) "site_keywords"
["option_value"]=>
string(14) "My site keywords "
["setting"]=>
string(7) "general"
}
array(3) {
["option"]=>
string(9) "site_name"
["option_value"]=>
string(17) "My site name"
["setting"]=>
string(7) "general"
}
所以我会尝试解释,因为我需要传递结果变量
所以当我以这种方式循环时
foreach ($results as $result )
{
var_dump($result['site_name']) ;
}
所以当我在想要显示索引选项值时添加site_name索引,但如果我这样做,我会得到未定义索引:site_name
答案 0 :(得分:0)
没有。你不能。你可以加入他们,但你不会得到你想要的结果,因为你有三个元素具有相同的键。你会如何访问第二个元素选项?不可能。
如果需要可疑。
我建议你重新考虑为什么要这样做。也许你认为你遇到的问题可以解决,而不需要这样的数组。
如果您想要的(如评论中所述)是一个包含每个选项的option_value的数组,您可以做的是首先重新排列数组。
$newArray = array();
foreach ($results as $result)
{
$newArray[ $result['option'] ] = $result['option_value'];
}
var_dump($newArray);
编辑:阅读您的编辑,您的问题似乎是您不知道如何访问阵列数据。
你有这个数组:
array(3) {
["option"]=>
string(9) "site_name"
["option_value"]=>
string(17) "My site name"
["setting"]=>
string(7) "general"
}
你尝试以这种方式访问它:
var_dump($result['site_name']);
但是' site_name'是一个值,存储在数组中的键选项'。
那么您期望成为$result['site_name']
的内容是什么?
如果你想获得"我的网站名称"你必须在持有$result['option_value']
的数组上调用'site_name'
。
我上面的解决方案会重新排列你的数组,为你提供你想要的访问权限,你说这不是你想要的。
你想要的是什么?