Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/257.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:!in_数组不使用空数组_Php_Arrays_Codeigniter - Fatal编程技术网

PHP:!in_数组不使用空数组

PHP:!in_数组不使用空数组,php,arrays,codeigniter,Php,Arrays,Codeigniter,我的代码遇到了一些问题,下面是我的代码示例 $arr2=array(); $element1="2015-01-13"; if(!in_array($element1,$arr2)) { array_push($arr2,$element1); } var_dump($arr2); 输出为空数组 array(0) { } 如果阵列已经手动添加了一个元素,例如2015-01-12,则通过阵列推送成功插入了2015-03-13 当数组为空并与in_数组进行检查时会发生什么情

我的代码遇到了一些问题,下面是我的代码示例

$arr2=array();
$element1="2015-01-13";

if(!in_array($element1,$arr2)) {
         array_push($arr2,$element1);
}

var_dump($arr2);
输出为空数组

array(0) {
}
如果阵列已经手动添加了一个元素,例如2015-01-12,则通过阵列推送成功插入了2015-03-13

当数组为空并与in_数组进行检查时会发生什么情况

这是原始代码


任何帮助都将不胜感激。

你好,我很高兴能帮助你

这里发生的是两个因素的组合

$element变量中缺少$ 您没有激活所有错误报告,因此通知不会显示在屏幕上,或者您正在使用一个框架来修改错误报告,从而跳过通知。 我强烈建议您在调试代码时始终查看/var/log/httpd/error\u日志,并在调试任务中使用error\u reporting=E\u ALL,
对我所有的错误表示歉意,最后我发现了问题并解决了它

问题在于:

if ($element1 != $element2 && !in_array($element1,$arr2))
如果日期相同,则element1和element2相同,并且我在其中使用了&&运算符。因此它不会进入循环。但&&是必需的,因为如果所有日期都不同,则所有日期都会被多个推送到数组中

解决办法是:

if (count(array_unique($predates))===1) {
                              array_push($arr2,$predates[1]);
                         }
此循环将检查所有数组元素是否相同,然后插入第一个元素 如果$element1!=$元素2&!在数组$element1,$arr2中,我得到了输出


请否决这个答案,这是我善意的请求

代码粘贴正确吗?它给了我一个解析错误,因为元素1的开头没有美元符号。事实上,当我纠正这个错误时,它对我有效。我得到array1{[0]=>string10 2015-01-13}。当我添加缺少的$in时,它会打印出一个数组,其中包含正确的值。数组\u push是否被调用?你能在if中放一个echo hi,看看它是in\u数组还是数组\u push失败了什么?我想你急于在stackoverflow中发布一个问题。。。这不是一个真正的问题。了解如何键入正确的语法!!为什么你要在序言中循环n^2次?为什么不仅仅是$arr2=array\u unique$predates?我在问题中已经说过这是一个示例代码,问题不在于$sign,无论如何,谢谢你的回答。请不要投这个票,我是初学者php@ShifanaMubi请解释一下你发布的新代码试图实现什么,因为我做了测试,它正在工作。。。我很乐意帮助您。谢谢您的好意,我收到了我的输出:
if (count(array_unique($predates))===1) {
                              array_push($arr2,$predates[1]);
                         }