PHP 如何向關聯數組指定的 Key 以前插入元素

PHP 關聯數組能夠經過三種方式插入新元素:數組

  1. $array[$insert_key] = $insert_value;
  2. $array = array_merge($array, $insert_array);
  3. $array = $array+$insert_array;

可是若是要在指定的鍵以前插入元素呢?下面的代碼將 $data 插入關聯數組 $array 的鍵名爲 $key 的 Key 以前:spa

function wpjam_array_push($array, $data=null, $key=false){
    $data    = (array)$data;
    $offset    = ($key===false)?false:array_search($key, array_keys($array));
    $offset    = ($offset)?$offset:false;

    if($offset){
        return array_merge(
            array_slice($array, 0, $offset), 
            $data, 
            array_slice($array, $offset)
        );
    }else{    // 沒指定 $key 或者找不到,就直接加到末尾
        return array_merge($array, $data);
    }
}
相關文章
相關標籤/搜索