PHP从数组中删除元素问题
我和拉威尔5号在一起。我面临的问题是,我在会话中有一个数组,现在我想从该数组中删除一个元素,为了方便起见,我正在使用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
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了。。。厚度^^