php - 如果变量存在于数组中,则php中的数组条件
问题描述
我正在创建一个函数来返回一个日期,其中我有一个包含对象的数据数组,我想在单独的数组中插入与状态为 1 和 2 的数据数组相同的日期。
这是我的数组对象数据:
Array ( [0] => stdClass Object ( [time] => 2019-09-09 09:00:00 [status] => 1 )
[1] => stdClass Object ( [time] => 2019-09-09 17:00:00 [status] => 2 )
[2] => stdClass Object ( [time] => 2019-09-10 09:00:00 [status] => 1 )
[3] => stdClass Object ( [time] => 2019-09-10 17:00:00 [status] => 2 )
[4] => stdClass Object ( [time] => 2019-09-11 09:00:00 [status] => 1 )
[5] => stdClass Object ( [time] => 2019-09-11 17:00:00 [status] => 2 )
[6] => stdClass Object ( [time] => 2019-09-12 09:00:00 [status] => 1 )
[7] => stdClass Object ( [time] => 2019-09-13 09:00:00 [status] => 1 )
)
我想返回类似这样的数组:
Array [0] 2019-09-09
[1] 2019-09-10
[2] 2019-09-11
我从数据库中得到这个结果。
解决方案
如果您始终希望状态为1
or 2
,则可以运行查询,在其中选择DISTINCT
值,在DATE()
列上使用。然后检查日期是否同时具有状态 1 和 2。
请注意,如果您可能拥有很多状态,则此解决方案无法很好地扩展 - 那么您应该考虑另一种方法。
SELECT DISTINCT DATE(t.time) AS time
FROM myTable t
JOIN myTable t2
ON DATE(t.time) = DATE (t2.time)
WHERE t.status = 1
AND t2.status = 2
ORDER BY t.time
桌子
CREATE TABLE myTable (
time DATETIME,
status SMALLINT
);
INSERT INTO myTable VALUES
('2019-09-09 09:00:00', 1),
('2019-09-09 17:00:00', 2),
('2019-09-10 09:00:00', 1),
('2019-09-10 17:00:00', 2),
('2019-09-11 09:00:00', 1),
('2019-09-11 17:00:00', 2),
('2019-09-12 09:00:00', 1),
('2019-09-13 09:00:00', 1);
产生结果
2019-09-09
2019-09-10
2019-09-11
推荐阅读
- c# - C# Nullable Reference Types: can this function accept a dictionary with both nullable and non-nullable value without overriding null checking?
- graphql - 我可以跳过 Shopify 结帐中的联系信息,但无法事先选择退出营销,这似乎不合规。我能做些什么?
- html - 如何正确地将 CSS 样式应用于 HTML 元素 Clearance 模板?(Ruby On Rails)
- excel - 在excel中提取一个ID对应的数据(VBA-Excel)
- html -
- go - 在 GO 中验证 AWS Cognito JWT
- svn - 使用“hg.exe convert”命令将 Mercurial 存储库转换为 SVN 存储库时出现错误“中止:无法处理 svn 输出”
- javascript - 无法在 Express 中控制台记录 Passport 身份验证
- asp.net - 如何找出哪些应用程序和应用程序错误一直禁用我的 IIS 10 应用程序池?
- dataframe - 带有 Pandas 数据框的嵌套字典