PHP-为什么在浏览器中查看时,echo语句和print_r()函数的输出会有差异?请解释一下

PHP-为什么在浏览器中查看时,echo语句和print_r()函数的输出会有差异?请解释一下,php,cookies,foreach,Php,Cookies,Foreach,echo语句确保$key2和$value2中的值是正确的,并且在setcookies()方法的下一行中作为参数提供,但在浏览器中输出是不同的。在浏览器中,我们只获取最后一个用户名称和用户电子邮件集,但其他值不会通过print\r()方法显示。每个用户名或用户电子邮件cookie替换该名称的前一个cookie,因为它是相同的cookie名称。循环结束时,只保留最近设置的值。setcookie()不会用新值填充$\u COOKIE数组。这些问题在下一个HTTP请求中首先出现。即使在我刷新页面时,我上

echo语句确保$key2和$value2中的值是正确的,并且在setcookies()方法的下一行中作为参数提供,但在浏览器中输出是不同的。在浏览器中,我们只获取最后一个用户名称和用户电子邮件集,但其他值不会通过print\r()方法显示。

每个
用户名或
用户电子邮件
cookie替换该名称的前一个cookie,因为它是相同的cookie名称。循环结束时,只保留最近设置的值。

setcookie()
不会用新值填充
$\u COOKIE
数组。这些问题在下一个HTTP请求中首先出现。即使在我刷新页面时,我上面提到的问题仍然存在。我倾向于在下面更同意Boann的观点,因为我也认为在循环结束时可以有一个键和该键的一个对应值,但我希望从其他人那里得到意见,因为我对web编程和Cookie以及PHP都是新手。
<?php
$cookies_data = array(

    'user_1' => array(
        '$user_name' => 'xyz khan', 
        '$user_email' => 'xyz@yahoo.se'
    ),

    'user_2' => array(
        '$user_name' => 'abc khan',
        '$user_email' => 'abc@gmail.com'
    ),

    'user_3' => array(
        '$user_name' => 'rst khan',
        '$user_email' => 'rst@lovemail.com'
    )
);

foreach ($cookies_data as $key1 => $value1) {
    $temp_key1 = $key1;
    foreach ($cookies_data[$temp_key1] as $key2 => $value2) {
        echo "<BR>$key2------------------$value2<BR>";//This line is for debugging 
        setcookie($key2, $value2, (time()+30), "/");//expire cookies after 30 seconds.
    }
}

    //Checking for debugging purpose if the cookies have been set.
    echo '<pre>', print_r($_COOKIE, TRUE), '</pre>';
?>