我正在从数据库中提取表格,并且我试图阻止userdata表包含在最终发送到我的应用程序的数组中。我尝试使用array_diff并取消设置,但我没有运气。由于可以添加表格,因此用户数据不会始终处于相同位置。
检查JSONlint.com时的数组如下所示:
[{"table_name": "OSA"
}, {
"table_name": "OSB"
}, {
"table_name": "userdata"
}]
PHP文件中的代码:
$tables = array();
while ($row = mysqli_fetch_array($result)){
array_push($tables, array("table_name"=>$row[0]));
}
$remove= array({"table_name": "userdata"});
$result = array_diff($tables, $remove);
echo json_encode($result);
答案 0 :(得分:2)
最佳方式可能是在查询中排除它:
SELECT column FROM table WHERE column <> 'userdata'
或者,只是不要将它添加到数组中:
while($row = mysqli_fetch_array($result)) {
if($row[0] != 'userdata') {
$tables[] = array('table_name' => $row[0]);
}
}
您的array_push
应该可以正常工作,但我更喜欢上述内容。
但回答unset
问题。只需获取table_data
列值,搜索关键字userdata
和unset
:
unset($tables[array_search('userdata', array_column($tables, 'table_name'))]);