以下代码使用数组来搜索数组中的ID是否与$rmid
匹配。如果为true,则删除整个正确的密钥。
$rmid = 1;
$data = $db['refs'];
// remove element
foreach( $data as $k => $v ) {
if( in_array( $rmid, $v ) ) {
unset( $data[$k] );
}
}
Hovewer,如果将1
传递给$rmid
,它会删除数组中的所有键!不是唯一一个$rmid = 1
。我的代码出了什么问题?
修改
哎呀。发布后我刚刚意识到:
if( $rmid == $v['id'] ) {
unset( $data[$k] );
}
感谢您的努力!
答案 0 :(得分:1)
使用:
if( in_array( $rmid, $v, true ) ) {
第三个参数强制执行===而不是==,1计算结果为true,但大多数其他事情也是如此,在PHP中松散。 [==用于比较两种相同类型的东西,但是当它进行类型转换时,它会有一些奇怪的怪癖]