从PHP中删除数组中的项目?

时间:2017-10-03 19:36:32

标签: php arrays

我正在从数据库中提取表格,并且我试图阻止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);

1 个答案:

答案 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列值,搜索关键字userdataunset

unset($tables[array_search('userdata', array_column($tables, 'table_name'))]);