我从我的数据库中获取数据,它们看起来像这样:
[{"0":"1","key-1":"1","1":"1","key-2":"1","2":"1","key-3":"1","3":"1","key-4":"1"}]
其中key-1是列的名称。 (我只有一个条目)。
我想只提取列值并将它们保存到一个新的数组中,输出如下:
{"key-1":"1","key-2":"1","key-3":"1","key-4":"1"}
我希望它看起来完全像这样而不是:[{"key-1":"1","key-2":"1","key-3":"1","key-4":"1"}]
我试过了:
$cart["key-1"]=$output["key-1"];
其中$ output是首先显示的数据库的结果(带[]的数据。
并且$ cart是我想要的新数组。
两者都声明为:
$cart=array();
$output=array();
和$output[]=$row
其中row是数据库提取的结果。怎么做?
答案 0 :(得分:1)
这是一种方法,我在这里用数据库行替换了一个字符串,并使用了json_decode()
和json_encode()
$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);
输出:
1
{"key-1":"1","key-2":"1","key-3":"1","key-4":"1"}
答案 1 :(得分:0)
这是一个非常混乱的问题。 从我收集到的你想要的可能是这个......?
$cart=array();
foreach ($output as $index=>$value){
if stripos($index,"key-"){
cart[$index]=$value;
}
}
答案 2 :(得分:0)
使用mysql_fetch_assoc()
仅获取列名称;)
while ($row = mysql_fetch_assoc($result_of_query))
{
echo $row['key-1'];
echo $row['key-2'];
}