PHP foreach 不循环

标签 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);

关于PHP foreach 不循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36716792/

相关文章:

php - 如何使用 PHP Rest SDK 创建灵活的计费协议(protocol)?

php - 使用 jquery 单击单元格后,让 div 从 fetch-array-table 行获取值

php - 如果 Count 为零,如何在 Laravel 中获取记录

php - 使用 PHP 函数返回的对象数组

powershell - 在 powershell 中并行运行任务

php - 使用 php 获取 vine 视频 ID

r - 在Windows上并行运行ddply()的简单工作示例

ios - 如何获取 ForEach 循环内项目的索引?

php - 绑定(bind)大插入或更新的更有效方法?

MySQL select 查询中的 PHP foreach 语句