我编写了一个简单的函数,它接受一个数据库表并输出一个完整的JSON数组。
function tableJSON ($table, $orderby) {
$array = array();
$sql = Nemesis::select("*", $table, NULL, $orderby);
if ($sql) {
if ($sql->num_rows > 0) {
while ($row = $sql->fetch_assoc()) {
// push row values to array
array_push($array, $row);
}
return json_encode($array);
} else {
echo 'Query returned empty';
}
} else {
echo 'Query error';
}
}
从这个数组中,使用概述here的方法生成一个表。然后我将表格分类器应用于表格。我的问题是,目前,此脚本输出所有行和列。例如:
[{"id":"109225488","project_name":"One on One Interview the Dean of RSM","project_bold":"Interview","project_content":"Interview with the Dean of Erasmus University Rotterdam School of Management. Interviewer: Joost Kammermans.","project_image_1":"\/images\/uploads\/projects\/109225488\/m_109225488_1.jpg","project_image_2":"","project_image_3":"","project_image_4":"","youtube_link":"http:\/\/www.youtube.com\/watch?v=9rsR3FcLAxI","published":"1","created":"2013-05-29 14:07:49","created_by":"1","last_modified":"2013-07-22 19:43:15","last_modified_by":"1"}
如何排除此脚本输出排除列数组?
例如:
$excluded = array('created_by', 'project_image_1');
我试过array_diff
,没有运气。
答案 0 :(得分:2)
$sql = Nemesis::select("*", $table, NULL, $orderby);
将*
更改为仅输出您想要输出的列的列表,您不必担心后端阵列会烦恼。
答案 1 :(得分:0)
我会建议DevIshOne的答案,但是......
function tableJSON ($table, $orderby, $excluded = array()) {
$array = array();
$sql = Nemesis::select("*", $table, NULL, $orderby);
if ($sql) {
if ($sql->num_rows > 0) {
while ($row = $sql->fetch_assoc()) {
$newrow = array();
foreach($row as $col => $val)
if(!in_array($col, $excluded))
$newrow[$col] = $val;
// push row values to array
array_push($array, $newrow);
}
return json_encode($array);
} else {
echo 'Query returned empty';
}
} else {
echo 'Query error';
}
}