php新手
我想从php会话数组中删除带有值的索引。我使用此代码
$max=count($_SESSION['Item']);
for($i=0;$i<$max;$i++){
if(strpos($_SESSION['Item'][$i]['Name'],'Shipping')!== false)
{
unset($_SESSION['Item'][$i]);
break;
}
如果值存在于数组的最后一个索引中,则其工作正常。但如果它存在于两者之间。它根本不起作用。我哪里错了?
答案 0 :(得分:1)
我建议使用foreach
代替for
。这样你的数组键就可以只有int了。并保证循环遍历所有数组项
foreach($_SESSION['Item'] as $key => $value) {
if (strpos($value['Name'],'Shipping')!== false) {
unset($_SESSION['Item'][$key]);
}
}
正如所指出的,休息将停止循环。因此,如果您只想删除单个条目,则应添加中断
答案 1 :(得分:1)
尝试使用array_splice删除项目
array_splice($_SESSION['Item'], $i, 1);
答案 2 :(得分:0)
if(strpos($_SESSION['Item'][$i]['Name'],'Shipping')!== false)
{
unset($_SESSION['Item'][$i]);
}