如何将PHP数组重置为其默认键和值

时间:2012-05-12 15:25:01

标签: php arrays defaults

我有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
);

感谢。

4 个答案:

答案 0 :(得分: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;

答案 1 :(得分:2)

执行此操作的唯一方法是使用原始数据覆盖数组,因此请再次运行:

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

PHP不会存储任何修订数据或类似内容,因此您无法反转数组更改。

答案 2 :(得分:2)

“true”方法是创建一个返回所需数组的函数getDefaultOptions。

答案 3 :(得分: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