php - 从所有列名和值获取数据属性的更短方法
问题描述
表用户有 14 列 - id、src 链接、标题...
function get_atitles(){
global $db;
$st = $db->query("select * from users order by name asc");
$arr = $st->fetchAll();
$ht = '';
foreach($arr as $el){
$ht .= "<div class='atitle' data-id= " . $el['id'] . " data-src='" . $el['src'] . "... and so on for all of the 14 columns...>" . $el['title'] . "</div>\n";
}
echo $ht;
}
有没有更短的方法,像这样:
foreach($arr as $el){
$ht .= "<div class='atitle'
//foreach column in users $ht .= "data-" . column_name = column_value
$ht .= ">" . $el['title'] . "</div>\n";
}
解决方案
也许是这样的:
function get_atitles(){
global $db;
$st = $db->query("select * from users order by name asc");
$arr = $st->fetchAll(PDO::FETCH_ASSOC);
$ht = '';
foreach($arr as $el){
$ht = $ht . "<div class='atitle' ";
foreach($el as $key=>$col)
if($key != 'title')
$ht .= "data-".$key.'="'.$col.'" ';
$ht.= '>'.$el['title'] . "</div>\n";
}
echo $ht;
}
推荐阅读
- php - 动态包含文件时的PHP未定义变量错误
- javascript - 在设置元素的 .html() 内设置间隔时,可以使用 jQuery .each 吗?
- routes - 免费增值 HERE 开发者计划的距离矩阵限制
- flutter - 即使我指定“宽度”和“高度”,容器也会填满屏幕
- r - 如何在 R 中运行演示?
- apache-flink - Flink,RocksDBStateBackend 中的 setDbStoragePath 方法是做什么的?
- c# - 不显示布局页面,在除索引之外的其他视图中工作。C# ASP.NET 核心
- flutter - 有没有办法检查特定的颤振插件是否适用于特定的 Android/IOS 操作版本?
- c# - 在控制器动作中接收参数
- flutter - 如果数据不可用,则颤振在文本小部件上应用条件