2012-05-12 5 views
0

У меня есть PHP массив:Как сбросить PHP массив его ключей и значений по умолчанию

$curl_options = array(
    CURLOPT_PORT => 80, 
    CURLOPT_CONNECTTIMEOUT => 10, 
    CURLOPT_TIMEOUT => 30 
); 

Затем я добавляю новые элементы и изменить некоторые значения:

$curl_options[CURLOPT_USERAGENT] = "Opera/9.02 (Windows NT 5.1; U; en)"; 

$curl_options[CURLOPT_PORT] = 90; 

После этого изменения массива становится

$curl_options = array(
    CURLOPT_PORT => 90, 
    CURLOPT_CONNECTTIMEOUT => 10, 
    CURLOPT_TIMEOUT => 30, 
    CURLOPT_USERAGENT => Opera/9.02 (Windows NT 5.1; U; en) 
); 

Как я могу сбросить массив до значения по умолчанию? До

$curl_options = array(
    CURLOPT_PORT => 80, 
    CURLOPT_CONNECTTIMEOUT => 10, 
    CURLOPT_TIMEOUT => 30 
); 

Спасибо.

+0

Расскажите нам, что вы точно пытаетесь сделать здесь, и, возможно, мы могли бы предоставить вам решение, подходит тебе. Обратите внимание, что все эти ответы работают, и все они очень просты. Поэтому позвольте мне сделать вывод, что ваш вопрос не может быть таким простым, и вам нужно какое-то другое решение. Но если ваш вопрос действительно такой простой, пожалуйста, выберите его как ответ :) – siaooo

ответ

2

«Истинный» способ - создать функцию getDefaultOptions, которая возвращает необходимый массив.

2

Вы должны сделать копию массива:

$curl_options = array(
CURLOPT_PORT => 80, 
CURLOPT_CONNECTTIMEOUT => 10, 
CURLOPT_TIMEOUT => 30); 

$copy = $curl_options; 

$curl_options[CURLOPT_USERAGENT] = "Opera/9.02 (Windows NT 5.1; U; en)"; 
$curl_options[CURLOPT_PORT] = 90; 

// Reset 
$curl_options = $copy; 
2

Единственный способ сделать это, чтобы перезаписать массив с его оригиналом, так что просто запустить это снова:

$curl_options = array(
CURLOPT_PORT => 80, 
CURLOPT_CONNECTTIMEOUT => 10, 
CURLOPT_TIMEOUT => 30); 

PHP не хранит какие-либо данные ревизии или что-то в этом роде, поэтому вы не можете изменять обратные массивы.

0

Сделать 2 отдельных массива - 1) По умолчанию 2) Расширение.

$curl_options_default = array(
    CURLOPT_PORT => 80, 
    CURLOPT_CONNECTTIMEOUT => 10, 
    CURLOPT_TIMEOUT => 30 
); 

$curl_options[CURLOPT_USERAGENT] = "Opera/9.02 (Windows NT 5.1; U; en)"; 
$curl_options[CURLOPT_PORT] = 90; 

$curl_options_new = array_replace($curl_options_default, $curl_options); 

Теперь у вас есть 2 массива: нетронутый $curl_options_default и новый (с расширенным/замещаемыми элементами) $curl_options_new

Смежные вопросы