gpt4 book ai didi

php - 来自 SQL 的值数组,显示哪些存在,哪些不存在

转载 作者:行者123 更新时间:2023-12-05 07:11:51 24 4
gpt4 key购买 nike

我想不出标题,我知道这不好。

基本上,我将向我发送一组值。这些值将是整数。

所以,假设它将是 1、2、3、4、5 等。我已经想出了如何从数据库中获取它们各自的值

  $values = explode(",", $_GET['id']);
$placeholders = str_repeat('?, ', count($values) - 1) . '?';
$CheckQuery = $database->prepare("SELECT * FROM users WHERE the_id IN($placeholders)");
$CheckQuery->execute($values);
$Res = $CheckQuery->fetchAll(PDO::FETCH_ASSOC);

现在,这很棒,因为给出了我希望能够返回的 ID:

ID1:0or1
ID2:0or1

尽管如此,我一直在试图弄清楚如何返回数据库中不存在的 ID。有什么帮助吗?

最佳答案

如果你想要 1 或 0,你可以使用 $values 数组的结果和来自数据库 $Res 的数据,创建以这些列表为键的数组 ( $Res 为 1,$values 为 0)然后用在数据库中找到的 1 覆盖 0...

$present = array_fill_keys(array_column($Res, 'the_id'), 1);
$allValues = array_fill_keys($values, 0);
$result = array_replace($allValues, $present);

一些测试数据...

$_GET['id'] = '1,2,3';
$values = explode(",", $_GET['id']);

$Res = [ ['the_id' => 1], ['the_id' => 3]];

$present = array_fill_keys(array_column($Res, 'the_id'), 1);
$allValues = array_fill_keys($values, 0);
$result = array_replace($allValues, $present);

print_r($result);

你得到

Array
(
[1] => 1
[2] => 0
[3] => 1
)

关于php - 来自 SQL 的值数组,显示哪些存在,哪些不存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60613390/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com