我正在从我的数据库中获取数据,它们看起来像这样:
[{"0":"1","key-1":"1","1":"1","key-2":"1","2":"1","key-3":"1","3":"1","key-4":"1"}] 其中键-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是最先显示的DB的结果(带[]的那个)。
$cart是我想要的新数组。
两者都声明为:
$cart=array();
$output=array();和$output[]=$row,其中row是DB fetch的结果。该怎么做呢?
发布于 2012-12-15 19:29:24
这里有一种方法,我在这里用数据库行代替了字符串,并使用了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"}发布于 2012-12-15 19:27:50
这是一个非常混乱的问题。据我所知你可能想要这个..?
$cart=array();
foreach ($output as $index=>$value){
if stripos($index,"key-"){
cart[$index]=$value;
}
}发布于 2012-12-15 19:28:46
使用mysql_fetch_assoc()仅获取列名;)
while ($row = mysql_fetch_assoc($result_of_query))
{
echo $row['key-1'];
echo $row['key-2'];
}https://stackoverflow.com/questions/13891687
复制相似问题