无法在PHP foreach循环中迭代数组

无法在PHP foreach循环中迭代数组,php,arrays,foreach,Php,Arrays,Foreach,我的请求PHP文件详细阐述了一些Ajax帖子数据: 发布数据 data[0][id]:359 data[0][position]:1 data[1][id]:321 data[1][position]:2 data[2][id]:354 data[2][position]:3 Request.php if(isset($_POST['data'])) { if(isset($_SESSION['username']) && isset($_SESSION['passwo

我的请求PHP文件详细阐述了一些Ajax帖子
数据

发布数据

data[0][id]:359
data[0][position]:1
data[1][id]:321
data[1][position]:2
data[2][id]:354
data[2][position]:3
Request.php

if(isset($_POST['data'])) {
    if(isset($_SESSION['username']) && isset($_SESSION['password'])) {

        $verify = $loggedIn->verify();

        if($verify['username']) {
            $Profile = new Profile();
            $Profile->db = $db;
            //Call my function
            $messages = $Profile->setOrder($_POST['data']);     

        }
    }
}
function setOrder($post) {
    var_dump($post);

    foreach($post as $item)
    {
        return "Area ID ".$item["id"]." and person located ".$item["position"]."<br />";
    }
}
Profile.php

if(isset($_POST['data'])) {
    if(isset($_SESSION['username']) && isset($_SESSION['password'])) {

        $verify = $loggedIn->verify();

        if($verify['username']) {
            $Profile = new Profile();
            $Profile->db = $db;
            //Call my function
            $messages = $Profile->setOrder($_POST['data']);     

        }
    }
}
function setOrder($post) {
    var_dump($post);

    foreach($post as $item)
    {
        return "Area ID ".$item["id"]." and person located ".$item["position"]."<br />";
    }
}

在我的函数中,我可以正确地
dump
类似
var_dump($post[0][“id”])
那么为什么我的
foreach
循环是空的?

这是因为您在循环内部使用
return
。它将在第一次迭代后终止循环。你需要这样做

$return = null;
foreach($data as $item)
{
    $return .= "Area ID ".$item["id"]." and person located ".$item["position"]."<br />";
}
return $return;
$return=null;
foreach($数据作为$项)
{
$return.=“区域ID”。$item[“ID”]”和位于“$item[“position”]”的人员“
”; } return$return;
这是因为您在循环内部使用了
return
。它将在第一次迭代后终止循环。你需要这样做

$return = null;
foreach($data as $item)
{
    $return .= "Area ID ".$item["id"]." and person located ".$item["position"]."<br />";
}
return $return;
$return=null;
foreach($数据作为$项)
{
$return.=“区域ID”。$item[“ID”]”和位于“$item[“position”]”的人员“
”; } return$return;
尝试
var\u转储($item)在循环内部。也许它会揭示一些东西。你实际上并没有告诉你的
foreach()
去输出任何东西,仅仅是
返回
——这将把字符串分配给
$messages=$Profile->setOrder($\u POST['data'])并终止循环。您不循环,因为
return
中断了循环我错过了
return
。是否要
echo
?尝试
var\u转储($item)在循环内部。也许它会揭示一些东西。你实际上并没有告诉你的
foreach()
去输出任何东西,仅仅是
返回
——这将把字符串分配给
$messages=$Profile->setOrder($\u POST['data'])并终止循环。您不循环,因为
return
中断了循环我错过了
return
。是否要
回显