首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从DB中获取并将其存储在新的数组PHP中

从DB中获取并将其存储在新的数组PHP中
EN

Stack Overflow用户
提问于 2012-12-15 19:17:21
回答 3查看 85关注 0票数 0

我正在从我的数据库中获取数据,它们看起来像这样:

代码语言:javascript
复制
[{"0":"1","key-1":"1","1":"1","key-2":"1","2":"1","key-3":"1","3":"1","key-4":"1"}] 

其中键-1是列的名称。(我只有一个条目)。

我只想提取列值,并将它们保存到一个新的数组中,该数组的输出如下:

代码语言:javascript
复制
{"key-1":"1","key-2":"1","key-3":"1","key-4":"1"} 

我希望它看起来完全像这样,而不是:[{"key-1":"1","key-2":"1","key-3":"1","key-4":"1"}]

我试过这个:

代码语言:javascript
复制
$cart["key-1"]=$output["key-1"];

其中$output是最先显示的DB的结果(带[]的那个)。

$cart是我想要的新数组。

两者都声明为:

代码语言:javascript
复制
$cart=array();
$output=array();

$output[]=$row,其中row是DB fetch的结果。该怎么做呢?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-12-15 19:29:24

这里有一种方法,我在这里用数据库行代替了字符串,并使用了json_decode()json_encode()

代码语言:javascript
复制
$data = '[{"0":"1","key-1":"1","1":"1","key-2":"1","2":"1","key-3":"1","3":"1","key-4":"1"}]';

// convert to an array
$data = json_decode($data, true);

// create new array here
$cart = array();

for ($i = 0; $i < count($data); $i++)
{
    foreach ($data[$i] as $k => $v)
    {
        if (strpos($k, 'key') !== FALSE)
        {
            $cart[$k] = $v;
        }
    }
}

echo $cart['key-1'] . '<br/>';

echo json_encode($cart);

输出:

代码语言:javascript
复制
1
{"key-1":"1","key-2":"1","key-3":"1","key-4":"1"}
票数 1
EN

Stack Overflow用户

发布于 2012-12-15 19:27:50

这是一个非常混乱的问题。据我所知你可能想要这个..?

代码语言:javascript
复制
$cart=array();
foreach ($output as $index=>$value){
  if stripos($index,"key-"){
    cart[$index]=$value;
  }
}
票数 0
EN

Stack Overflow用户

发布于 2012-12-15 19:28:46

使用mysql_fetch_assoc()仅获取列名;)

代码语言:javascript
复制
while ($row = mysql_fetch_assoc($result_of_query))
{
    echo $row['key-1'];
    echo $row['key-2'];
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13891687

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档