php - 如何分解键值对并在查询中使用它们

标签 php mysql laravel explode

在我的 laravel 项目中,我有一个数据库字段,用户可以在其中存储要考虑排序的参数及其顺序。即数据表“config”包含这样的列值

status-desc,priority-asc,..etc

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

ORDER BY status desc, priority asc

我可以像上面那样在查询代码中对此进行硬编码,因为排序列可能会根据用户输入而有所不同。

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

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

这样我就得到了$params[0] = status-desc 和 $params[1] =priority-asc ...

但是我怎样才能再次分解这些并获取并在 order by 查询中使用它们?

到目前为止我所做的是:

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

echo $k 和 $v 显示优先级 asc

最佳答案

尝试

$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);

关于php - 如何分解键值对并在查询中使用它们,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27354691/

相关文章:

javascript - 一旦渲染成 HTML 和 CSS,就生成 php 页面的一部分的 PDF,并考虑 pdf 分页符

php - PHP DOMDocument:按类删除元素

C程序扩展运行PHP

php - 从考虑中删除 5 个最新记录

mysql - 在模型及其关系中搜索并对结果进行分页

php - 如何使用 html 下拉列表将数据添加到 codeigniter 中的数据库表?

mysql - 2 分钟内获得汇总结果。范围

mysql - 将 Spring Batch MyISAM 序列表迁移到 InnoDB

php - 我有一个连接到 phpmyadmin 的 laravel 网站,但现在我想将 android 应用程序连接到同一个数据库

laravel - 如何检索输入字段