我试图从数组中取消设置()一些元素但是当使用foreach循环通过1个数组从另一个数组中删除这些元素时,它似乎不起作用。
if (isset($this->request->post['merge'])) {
$merge_orders = $this->request->post['merge'];
}
$selected_order = min($merge_orders); // Fetch the max value order_id
unset($merge_orders[$selected_order]); // Take it out of the array.
$orders_list = explode(',', $this->request->post['order_id_list']);
$removeKeys = $merge_orders;
foreach($removeKeys as $key) {
unset($orders_list[$key]);
echo $key;
}
echo print_r($orders_list);
第一个unset工作正常,但第二个没有,数组已设置并且格式正确,但它似乎仍然没有从$ orders_list数组中删除元素。
答案 0 :(得分:1)
如果您只在foreach
循环上使用一个参数,则会传递出现的值,而不是出现的密钥。
尝试这样,以便从foreach循环获取密钥而不是值
foreach($removeKeys as $key => $val) {
unset($orders_list[$key]);
echo $key;
}