PHP从数组中删除元素问题

PHP从数组中删除元素问题,php,arrays,laravel,Php,Arrays,Laravel,我和拉威尔5号在一起。我面临的问题是,我在会话中有一个数组,现在我想从该数组中删除一个元素,为了方便起见,我正在使用array\u diff函数 当我从会话中获取数组时,它的形式如下: ["4","5","6"] 但当我尝试从数组中删除元素“5”时,它会使数组变形,结果是: {"0":"4","2":"6"} 我的代码是: array_diff($arr, array(5)) 结果与unset([$index])的结果相同 真正的代码: Session::push('compare.pro

我和拉威尔5号在一起。我面临的问题是,我在会话中有一个数组,现在我想从该数组中删除一个元素,为了方便起见,我正在使用
array\u diff
函数

当我从会话中获取数组时,它的形式如下:

["4","5","6"]
但当我尝试从数组中删除元素“5”时,它会使数组变形,结果是:

{"0":"4","2":"6"}
我的代码是:

array_diff($arr, array(5))
结果与
unset([$index])
的结果相同

真正的代码:

Session::push('compare.products', $id); 
$compare = Session::get('compare'); 
if(($key = array_search($id, $compare['products'])) !== false) {   
    unset($compare['products'][$key]);
    return $compare['products']; 
}

如果要保留正确的索引,必须在取消设置后调用

在您的情况下,它将是:

Session::push('compare.products', $id); 
$compare = Session::get('compare'); 
if(($key = array_search($id, $compare['products'])) !== false) {   
    unset($compare['products'][$key]);
    return array_values($compare['products']); 
}
在一般情况下,它是:

$array = array(0, 1, 2, 3);

unset($array[2]);

$array = array_values($array);
var_dump($array);
/* array(3) {
  [0]=>
     int(0)
  [1]=>
     int(1)
  [2]=>
     int(3)
} */ 

使用时:未设置($index[1]);它返回{“0”:“4”,“2”:“6”}??无法复制,您需要发布准确的代码/一个工作示例:预期的输出是什么?@Katherina是的,结果是一样的。老实说,结果很好,但它是json,它表示索引0=4,索引2=6这究竟如何回答这个问题?
{“0”:“4”,“2”:“6”}
似乎是一种类似于
[“0”=>“4”、“2”=>“6”]
的变量转储。当他说它使数组变形时,我认为我的答案用正确的索引数组解决了这个问题。我没有注意到这是一个JSON输出。。。我太直接关注PHP了。。。厚度^^