Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在PHP中是否从数组中删除项?_Php_Arrays - Fatal编程技术网

在PHP中是否从数组中删除项?

在PHP中是否从数组中删除项?,php,arrays,Php,Arrays,我正在从数据库中提取表,并试图防止userdata表包含在最终发送到应用程序的数组中。我尝试过使用array_diff和unset,但没有成功。由于可以添加表,userdata-one并不总是处于相同的位置 当我在JSONlint.com上检查时,数组如下所示: [{"table_name": "OSA" }, { "table_name": "OSB" }, { "table_name": "userdata" }] PHP文件中的代码: $tables = arra

我正在从数据库中提取表,并试图防止userdata表包含在最终发送到应用程序的数组中。我尝试过使用array_diff和unset,但没有成功。由于可以添加表,userdata-one并不总是处于相同的位置

当我在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);

最佳方法可能是在查询中排除它:

SELECT column FROM table WHERE column <> 'userdata'
你的
array\u push
应该可以正常工作,但我更喜欢上面的方法

但是要回答
unset
问题。只需获取
table_data
列值,搜索
userdata
unset
该键:

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

最佳方法可能是在查询中排除它:

SELECT column FROM table WHERE column <> 'userdata'
你的
array\u push
应该可以正常工作,但我更喜欢上面的方法

但是要回答
unset
问题。只需获取
table_data
列值,搜索
userdata
unset
该键:

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

您是如何调用unset的?因为数据来自数据库,所以应该可以更改查询,使其不会检索
table_name
键。此PHP代码应该失败,因为您尝试声明关联数组,就像在python中声明dict或在JS中声明对象一样。在PHP中,数组(或多或少)都是相同的。将第8行更改为
$remove=array(array(“table_name”=>“userdata”)
如何调用unset?因为数据来自数据库,所以应该可以更改查询,使其不会检索
table_name
键。此PHP代码应该失败,因为您尝试声明关联数组,就像在python中声明dict或在JS中声明对象一样。在PHP中,数组(或多或少)都是相同的。将第8行更改为
$remove=array(array(“table_name”=>“userdata”)谢谢!unset对我有效,我尝试时没有包括array\u列。当我通过JSONLint.com运行while循环时,它为我生成了一个错误,指出打开的连接太多了。谢谢!unset对我有效,我尝试时没有包括array\u列。当我通过JSONLint.com运行while循环时,它为我生成了一个错误,指出打开的连接太多。