如何爆炸键值对并在查询中使用它们

时间:2014-12-08 09:12:32

标签: php mysql laravel explode

在我的laravel项目中,我有一个db字段,用户可以在其中存储要考虑进行排序的参数以及它们的订单。也就是说,数据表" config"包含像这样的列值

status-desc,priority-asc,..etc

在这里,当我编写查询时,我需要将这些值用作成对的顺序。

ORDER BY status desc, priority asc

我可以在上面的查询代码中对此进行硬编码,因为排序列可以根据用户条目而有所不同。

我已经像这样分别推出了两个标准

$params = explode(',', $sort_param->config_value);

所以我得到了$params[0] = status-desc and $params[1] = priority-asc ...

但是我怎么能再次爆炸这些并在查询中获取并使用它们来按顺序排列?

到目前为止我所做的是:

$countt = count($params);
for($prm=0;$prm<$countt;$prm++){
list($k, $v) = explode('-', $params[$prm]);
}
 echo $k.' '.$v;

echo $ k和$ v显示priority asc

2 个答案:

答案 0 :(得分:0)

尝试

$tab = 'status-desc,priority-asc,value,string,demo';
$params = explode(',',$tab);
foreach($params as $v){
    $tab2[] = explode('-',$v);


}
$newTab = array_merge($params,$tab2);
print_r($newTab);

答案 1 :(得分:0)

尝试使用这个简单的代码

$tab = 'status-desc,priority-asc,value,string,demo';
list($statut,$priority,$value,$demo) = explode(',',$tab);
echo $statut ;