php - 如何从 fetchall 的结果集中删除数组
问题描述
我有一个 mysql 查询的结果,需要根据条件将结果减少 1 个或多个数组。这是我尝试过的。
$sth = $dbh->prepare("SELECT name, colour FROM fruit");
$sth->execute();
$result = $sth->fetchAll();
print_r($result);
它将创建一个结果集:
Array
(
[0] => Array
(
[name] => pear
[0] => pear
[colour] => green
[1] => green
)
[1] => Array
(
[name] => watermelon
[0] => watermelon
[colour] => pink
[1] => pink
)
)
如何删除名称为 watermelon 的整个数组,使其 $result 仅包含 pear 元素?
这是我尝试过的,但没有奏效:
foreach ($result AS $items=>$vals){
foreach ($items AS $item=>$value){
if ($item =="name" AND $value=='watermelon'){
unset($result[$items]);
}
}
}
提前致谢。杰克
解决方案
未foreach
正确引用语句及其变量。它去了key
=>value
foreach ($result AS $index=>$item){
if($item['name'] === 'watermelon')
unset($result[$index]);
}
}
但就像其他人评论的那样,最好的方法就是WHERE
在你的查询中抛出一个条件并让数据库进行过滤。
推荐阅读
- python - 用四个顶点填充多边形
- excel - 使用 VBA (Excel) 从 XML DOM 对象中删除(子)节点
- tree - 小部件收音机在 one2many 行 odoo 中不起作用
- javascript - 如何将 json 对象下载为文件?
- python - 如何使用 pandas 从 excel 文件中获取单元格的背景颜色?
- jolokia - 无法访问 Jolokia JVM 代理
- docker - Docker Watchtower 有全局钩子机制吗?
- android - Android Json 处理问题
- angular - 使用放大凭据签署 HTTP 请求 - Angular
- javascript - 如何获取嵌套点击元素的值?