PHP在foreach循环中从数组中删除元素

时间:2015-08-18 18:45:50

标签: php arrays

我试图从数组中取消设置()一些元素但是当使用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数组中删除元素。

1 个答案:

答案 0 :(得分:1)

如果您只在foreach循环上使用一个参数,则会传递出现的值,而不是出现的密钥。

尝试这样,以便从foreach循环获取密钥而不是值

foreach($removeKeys as $key => $val) {
   unset($orders_list[$key]);
   echo $key;
}