无法在PHP foreach循环中迭代数组
我的请求PHP文件详细阐述了一些Ajax帖子无法在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
数据
:
发布数据
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
。是否要回显?