我有一个foreach循环,如果满足某些条件,我想从数组中取消设置项目,如下所示:
foreach ($array as $element) {
if (conditions) {
unset($element);
}
}
Run Code Online (Sandbox Code Playgroud)
但是之后的元素并没有被取消.我究竟做错了什么?我是否取消了对实际元素或类似内容的引用?
我有一系列格式为'm/d/Y'(月/日/年)的日期:
$array = array(
'1/10/2014',
'1/11/2014',
'1/12/2014',
'1/13/2014',
'1/14/2014'
);
Run Code Online (Sandbox Code Playgroud)
而且我想输出只有今天或将来日期的数组.因此,如果今天是2014年1月12日,它将消除2014年1月10日和2014年1月11日.
这是我有的不起作用:
foreach ($array as $date) {
$unixdate = strtotime($date);
if ($unixdate < time()) {
unset($array[$date]);
}
}
print_r($array);
Run Code Online (Sandbox Code Playgroud)
我想我没有unset正确使用,因为它打印整个阵列?
我的代码有多个$_POST变量。我喜欢收拾东西unset在所有事情都执行完后它们。
我不想$_POST单独列出每一个。是否有同时处理unset所有$_post值的好方法。我不想取消我$_SESSIONS或其他变量的设置。只是邮政的。
非常感谢任何有用的提示。
我尝试使用unset($_POST);
- 但它没有unset值。谢谢
无法取消设置 Linux 环境变量 FLEXLM_DIAGNOSTICS
{goudarsh:tst_rep/}@vilc1199:/<8>ndm> echo $FLEXLM_DIAGNOSTICS
5
{goudarsh:tst_rep/}@vilc1199:/<8>ndm> unset FLEXLM_DIAGNOSTICS
{goudarsh:tst_rep/}@vilc1199:/<8>ndm> env |grep FLEX
FLEXLM_DIAGNOSTICS=5
Run Code Online (Sandbox Code Playgroud)
有人可以给我其他技巧来解决这个问题吗?
是否有一种快速简便的方法可以取消设置数字中除最高有效位之外的所有位?换句话说,我想获取一个整数 x 并对它应用 & 运算符,其中操作数按 x 中的总位数左移 1。例子:
return UnsetAllBitsExceptMSB(400);
应该返回 256
有人可以帮我解决这种情况吗?
我有这个假 JSON...
[
{
"user": {
"type": "PF",
"code": 12345,
"Name": "Darth Vader",
"currency": "BRL",
"status": "ACTIVE",
"localization": "NABOO",
"createDate": 1627990848665,
"olderAdress": [
{
"localization": "DEATH STAR",
"status": "BLOCKED",
"createDate": 1627990848665
},
{
"localization": "TATOOINE",
"status": "CANCELLED",
"createDate": 1627990555665
},
{
"localization": "ALDERAAN",
"status": "INACTIVED",
"createDate": 1627990555665
},
]
}
}
]
Run Code Online (Sandbox Code Playgroud)
code如果状态等于“已阻止”或“已取消”,我想删除该字段。我使用聚合是因为我在实际示例之前做了很多事情。我怎样才能做到这一点??
我需要这个结果:
[
{
"_id": ObjectId("5a934e000102030405000000"),
"user": {
"Name": "Darth Vader",
"createDate": 1.627990848665e+12,
"currency": "BRL",
"localization": "DEATH STAR",
"status": "BLOCKED",
"type": "PF"
}
}, …Run Code Online (Sandbox Code Playgroud) 我一直在阅读关于参考资料的PHP手册,有些东西让我感到困惑.它说引用不是指向内存地址的指针而是......
相反,它们是符号表别名.
如果引用指向符号表条目然后指向内存地址,这本质上不是指针吗?
编辑:
一些很棒的答案.只想在这里弹出这个...我怎样才能取消另一个指向的变量?
$var = "text";
$ref =& $var;
unset($ref);
Run Code Online (Sandbox Code Playgroud)
看起来这个工作,我需要取消设置$var,以便GC删除它.
调用unset()释放与该对象关联的内存吗?有几种情况我发现自己处理大型关联数组,我想在完成后删除它们(释放内存以创建新的).
我建立一个PHP框架,并在其中我有一个解析URL还有一个请求对象$_GET,$_POST和$_FILE超全局变量.
我想鼓励安全的网络习惯,所以我保护数据不受SQL注入等的影响.
为了确保此框架的用户通过请求对象访问安全,干净的数据,我计划unset($_GET, $_POST, $_REQUEST);在解析这些变量后使用.
我将在方法注释中记录这一点,并在框架文档中解释这种情况.
我的问题是:这是否是理想的行为?我没有预料到的潜在陷阱是什么?
编辑:我找到了一种替代方法:array_slice()是一种很好的方法。
我有一个名为的数组$mas。取消设置数组的最后7个元素对我来说很好,但是当我尝试取消设置前3个元素时,出现错误:
注意:未定义的偏移量:0
这是我工作的几行代码:
$ilgis = count($mas);
unset($mas[$ilgis-1], $mas[$ilgis-2], $mas[$ilgis-3], $mas[$ilgis-4], $mas[$ilgis-5], $mas[$ilgis-6], $mas[$ilgis-7]);
Run Code Online (Sandbox Code Playgroud)
此代码不起作用:
...
unset($mas[0], $mas[1], $mas[2]);
Run Code Online (Sandbox Code Playgroud)
似乎它们甚至不存在于此数组中。任何想法如何解决?
顺便说一句, echo $mas[0];完美的作品。
var_dump($ mas)输出:
array (size=9)
0 => string 'Paris-Orly - Stockholm-Arlanda' (length=30)
1 => string 'Tuesday 25. Mar 2014 21:15 - Terminal: S' (length=41)
2 => string 'Flight DY4314 - LowFare' (length=26)
3 => string 'Stockholm-Arlanda - Copenhagen' (length=30)
4 => string 'Wednesday 26. Mar 2014 07:00 - Terminal: 5' (length=43)
5 => …Run Code Online (Sandbox Code Playgroud)