繁体   English   中英

php如何在不使用foreach的情况下分别回显数组数据

[英]php How to echo array data separately without using foreach

我创建了以下函数来返回成员数据。 但是,当我尝试返回数据时出现错误。 也许,我的方法是错误的。 考虑到以下细节,正确的方法应该是什么?

function memberData(){
  global $pdo;

  $stmt = $pdo->prepare("SELECT * FROM members WHERE mem_id = :mem");
  $stmt-> bindValue(':mem', userId());
  $stmt-> execute();

  while($f = $stmt->fetch()) {
   $return[] = $f;
  }
  return $return;
}

$memData = memberData();

执行print_r($memData)返回数据数组如下:

Array
(
    [0] => Array
        (
            [mem_id] => 1
            [0] => 1
            [mem_name] => Shubham Jha
            [1] => Shubham Jha
            [mem_email] => shubhamjha1000@gmail.com
            [2] => shubhamjha1000@gmail.com
            [mem_phone_ext] => +91
            [3] => +91
            [mem_phone] => 9876543210
            [4] => 9876543210
            [mem_password] => $2y$10$x5LfvrM8VVH/Rzx9NlCW/uktETYufS8yH4VPN/mcwvpmlBJcbarDe
            [5] => $2y$10$x5LfvrM8VVH/Rzx9NlCW/uktETYufS8yH4VPN/mcwvpmlBJcbarDe
            [mem_phone_verified] => yes
            [6] => yes
            [mem_email_verified] => no
            [7] => no
            [mem_date] => 2020-11-16 08:33:22
            [8] => 2020-11-16 08:33:22
        )
)

如何分别回显数据? 我尝试使用echo $memData['mem_id']; 但返回了一个错误Notice: Undefined index: mem_id in E:\\xampp\\htdocs\\market\\includes\\functions.php on line 157

您正在从您的函数返回一个数组(在我看来是$memData的),但这将使$memData成为一个数组,因此请使用

echo $memdate[0]['mem_id'];

或者,当您在其键上获取一行时,因此只会返回一个,您可以这样做

function memberData(){
    global $pdo;

    $stmt = $pdo->prepare("SELECT * FROM members WHERE mem_id = :mem");
    $stmt-> bindValue(':mem', userId());
    $stmt-> execute();

    $f = $stmt->fetch();
    return $f;
}

$memData = memberData();

echo $memdata['mem_name'];    // for example

并且最好将$pdo连接句柄注入函数而不是使用global

function memberData($pdo){

    $stmt = $pdo->prepare("SELECT * FROM members WHERE mem_id = :mem");
    $stmt-> bindValue(':mem', userId());
    $stmt-> execute();

    $f = $stmt->fetch();
    return $f;
}

$memData = memberData($pdo);

echo $memdata['mem_name'];    // for example

因为你有一个数组,一个数组是另一个数组或对象的集合,所以你需要做echo $memData[0]['mem_id']作为你的代码示例。

我强烈建议你学习原始编程和编程中对象的基础(这与PHP编程无关,而是通用编程)。

并且请阅读文档,如果您每天花 1 小时阅读文档对您有好处,通过简单的搜索,您可以找到任何您想学习的内容。

至于发现你的问题,如果你曾经在官方的 php 文档中阅读过这篇文章,你将来会避免这种错误和问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM