我循环两个数组之间的字符串重叠,删除那些有一个值的值,以便只保留$check的空值,在这种情况下是$check[5]。
第二个$check是多维的。
$names = ["bob", "selena", "hailey", "rob", "justin", "robocop"];
$check = [
["justin"], //bob
["justin", "selena", "robocop"], //selena
["justin"], //hailey
["justin", "rob"], //rob
[], //justin
["justin", "selena", "bob"] //robocop
];
for ($i = 0; $i < count($names); $i++) {
for ($j = 0; $j < count($check); $j++) {
if (in_array($names[$i], $check[$j])) {
unset($check[$j]);
}
}
}
第一个循环通过$names运行,第二个循环通过$check运行。
如果$names($names[i]
)中的当前字符串出现在$check($check[j])
的当前数组中,则该数组将被删除。
但是,控制台会打印一条警告:in_array()
希望参数2是数组,如果给定空值。我觉得这很奇怪,因为$check[j]
应该等于$check中的一个数组。
我有什么办法能解决这个问题吗?
随着不断取消设置$check数组,$check数组的大小将减小。因此,$check不会返回$j的较高值
您可以在这个代码段中做如下的小修改
$checkcount = count($check);
for ($i = 0; $i < count($names); $i++) {
for ($j = 0; $j < $checkcount; $j++) {
if (isset($check[$j]) && in_array($names[$i], $check[$j])) {
unset($check[$j]);
}
}
在外部循环的几次迭代之后,您将取消设置大部分$check
。对于类似这样的for
循环,您指望特定的数字键存在,但由于您取消设置它们,它们的值未定义,即null
。
您可以通过使用foreach循环来避免这种情况。
foreach ($names as $name) {
foreach ($check as $key => $array) {
if (in_array($name, $array)) {
unset($check[$key]);
}
}
}
当试图向会话添加数据(并检查它是否已经存在)时,我会收到以下警告。 警告:in_array()要求参数2为数组,给定null 我怎样才能解决这个问题? 它所指的代码: 我只有在清洁的浏览器上添加第一个产品时才会收到此警告。当我删除它并添加另一个产品时,警告就消失了。同样,如果我添加第二个产品。
请帮忙。我无法理解这一点,虽然我只是在学习php,但我尝试向现有woocommerce函数添加代码,以便在购物车中有一组产品时删除支付网关。我认为下面第四行“为自动支付如果声明添加”是这里的问题。提前谢谢。
在这种情况下,我的查询工作正常,我已经在mysql上对它们进行了测试。 首先,我有一个自定义查询函数,在MySQLDatabase类中如下所示 然后我有一个类叫用户使用MYSQL类 最后,我以这种方式调用index.php中的方法 以下是一些事实:1。-当我插入数据库中存在的id值时,会出现此警告 警告:mysqli_fetch_array()要求参数1为给定数组的mysqli_结果 2.-当我插
我不知道为什么我会得到这个。我用这个代码显示专辑封面。大多数专辑/子专辑都运行良好。但其中有2个会抛出错误:致命错误[0]:array_key_exists()期望参数2为数组,给定为null 任何指点都将受到高度赞赏。谢谢.
设置一个应该在图像上放置广告的应用程序时,我在运行代码时遇到了这个WordPress错误,这是一个令人沮丧的星期试图修复这个问题。 我希望它能工作,但它给了我以下错误:警告:preg_replace_callback():需要参数2,' 如果有人能想出一个解决方案,那将是惊人的,非常感谢!
我刚刚更新了PHP在我的服务器从PHP 5到PHP 7,我得到了这些警告: 警告:preg_replace_callback()[function.preg-replace-callback0]:要求参数2“chr(\1)”是有效的回调 警告:preg\u replace\u callback() 警告:preg_replace_callback()[function.preg-replace-c