我正在尝试使用另一个循环检查数组。
for( $i=0;$i<count($allCheckBoxId);$i++ ) {
if( $allCheckBoxId[$i] != ''){
unset( $contactlist[$cntctnum] );
}
}
我已将$ allCheckBoxId命名为contactnumber作为值。第二个数组我将$ contactlist命名为contactnumber作为关键元素。
对于特定条件,我正在检索第一个数组的值。意味着我会在第一个数组中将contactnumber作为值检索。如果它不为null我将使用值contactnumber取消设置第二个元素。但它在unset( $contactlist[$cntctnum] );
上给我的错误为未设置的非法偏移类型
答案 0 :(得分:6)
这是有趣的部分。
你知道,编程不只是编写代码
大部分时间编程正在寻找错误。不是通过在stackoverflow上提问,而是通过修改代码并研究它的输出和错误消息。某种调查。
如果你有这样的错误信息,这是不是意味着偏移类型的某些错误?为什么不打印问题变量?只打印出来:
for( $i=0;$i<count($allCheckBoxId);$i++ ) {
var_dump($cntctnum);
var_dump($allCheckBoxId[$i]);
var_dump($contactlist[$cntctnum]);
if( $allCheckBoxId[$i] != ''){
unset( $contactlist[$cntctnum] );
}
}
并查看偏移
的特别错误答案 1 :(得分:4)
尝试将密钥转换为字符串。替换:
$contactlist[$cntctnum]
使用
$contactlist[(string) $cntctnum]
或强>
for( $i=0;$i<count($allCheckBoxId);$i++ ) {
if( $allCheckBoxId[$i] != ''){
$key = (string) $cntctnum;
unset( $contactlist[$key] );
}
}
PHP关联数组,从PHP 5.4开始,如果您使用字符串以外的其他内容作为键,则会发出PHP警告:非法偏移类型。
此外,如果这没有帮助,请转到PHP Array Manual并为“非法偏移类型”执行 Ctrl / Cmd + F 。