加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

PHP foreach不循环

发布时间:2020-12-13 18:18:44 所属栏目:PHP教程 来源:网络整理
导读:我是编程的新手,刚刚开始使用两个月前的php.到目前为止,我似乎越来越了解它.但现在我很难过.我有一个foreach循环,它不会循环通过我喂它的数组.我一遍又一遍地检查语法和逻辑,但找不到问题.我可能做了一些愚蠢的事,但我需要你帮忙找出它是什么. 此代码是允许
我是编程的新手,刚刚开始使用两个月前的php.到目前为止,我似乎越来越了解它.但现在我很难过.我有一个foreach循环,它不会循环通过我喂它的数组.我一遍又一遍地检查语法和逻辑,但找不到问题.我可能做了一些愚蠢的事,但我需要你帮忙找出它是什么.

此代码是允许登录用户更改其个人信息的脚本的一部分.我将$_POST中的数据放入一个数组中并将其(使用session_user_id)提供给我的函数wijzig_gegevens():

if (empty($_POST) === false && empty($errors) === true) {
$gegevens = array(
    'voornaam' => $_POST['voornaam'],'achternaam' => $_POST['achternaam'],'emailadres' => $_POST['emailadres']
);
wijzig_gegevens($session_gebruiker_id,$gegevens);
}

我已经检查过$gegevens实际上是一个数组而且它是;当我print_r($gegevens)时,我得到以下输出(这是一个关联数组,对吧?):

Array ( [voornaam] => Marieke [achternaam] => Schut [emailadres] => mariekeschut@gmail.com )

所以信息被发送到我的函数wijzig_gegevens().当我使wijzig_gegevens()返回$gegevens和我的主代码print_r(wijzig_gegevens())时,它显示与上面完全相同的数组.所以$gegevens到达wijzig_gegevens()并且仍然是一个数组.

那么wijzig_gegevens()应该尽自己的一份力.最终它应该更新数据库,但是现在我只是试图让它从数组中生成键/值对.这是功能:

function wijzig_gegevens($gebruiker_id,$gegevens) {
    global $db;
    $gebruiker_id = (int)$gebruiker_id;
    foreach($gegevens as $key => $value) {
    return $key.$value;
    }
}

我希望foreach能够显示3组键/值对.但由于某种原因,它只显示第一个键/值对:

voornaamMarieke

这让我困惑了一天多,所以我希望有人可以帮我找到我的错误.

您只需在代码中返回循环的第一个值.您需要一个数组来存储foreach循环的整个键值
$array=array();// define your array
foreach($gegevens as $key => $value) {
     $array[]=$key.$value;
}
return $array;// return array

并且你得到你的回报价值

$data=wijzig_gegevens($session_gebruiker_id,$gegevens);
print_r($data);

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读