如何回显此会话数组的特定部分?

时间:2019-01-25 12:55:10

标签: php arrays session echo

当尝试打印/回显会话数组的特定部分时,它将不会返回除“ 1”之外的任何内容

它也给我一个错误,告诉我user_name是一个未定义的索引,但是当我var_dump进行会话时,它表明它存在。

仅在屏幕上显示会话的user_name部分的正确方法是什么?

我尝试过print_rechoprint,但这些方法似乎都不起作用

session_start();

include '../php/database.php';
var_dump($_SESSION['userdata']);
echo "Welcome back " . print_r($_SESSION['userdata']['user_name'][0]) . "!";

我希望输出为“ Welcome back user_name”,在这种情况下,应为文本字符串“ empty”

var_dump:

array(1) { [0]=> array(1) { [0]=> array(8) { ["user_id"]=> string(1) "1" [0]=> string(1) "1" ["user_name"]=> string(5) "empty" [1]=> string(5) "empty" ["user_pass"]=> string(5) "empty" [2]=> string(5) "empty" ["user_email"]=> string(17) "empty@hotmail.com" [3]=> string(17) "empty@hotmail.com" } } }

输出

  

注意:未定义的索引:user_name在   第7行的C:\ xampp \ htdocs \ Projecten \ loginSystem \ pages \ dashboard.php   欢迎回来1!

2 个答案:

答案 0 :(得分:2)

您的会话中有2个数组 这样做:

echo "Welcome back " . print_r($_SESSION['userdata'][0][0]['user_name']) . "!";

答案 1 :(得分:1)

您提到的会话数据如下:

array(1) {
    [0]=> array(1) { 
        [0]=> array(8) { 
            ["user_id"]=> string(1) "1" [0]=> string(1) "1" 
            ["user_name"]=> string(5) "empty" [1]=> string(5) "empty" 
            ["user_pass"]=> string(5) "empty" [2]=> string(5) "empty" 
            ["user_email"]=> string(17) "empty@hotmail.com" [3]=> string(17) "empty@hotmail.com" 
        } 
    } 
}

要获取用户名,您将必须以以下方式遍历数组:

echo $_SESSION['userdata'][0][0]['user_name'];