foreach中的PHP foreach重复数据而不是转义循环
将以下代码视为一个代码foreach中的PHP foreach重复数据而不是转义循环,php,foreach,logic,controls,conditional-statements,Php,Foreach,Logic,Controls,Conditional Statements,将以下代码视为一个代码 <?php foreach ( $alldata as $alldatakey=>$alldatavalue){ foreach ( $alldatavalue as $neededdatakey=>$neededdatavalue){ #conditions here foreach (){ if(){ $variable = $data1; } if(){ $variable .= $data2; }
<?php
foreach ( $alldata as $alldatakey=>$alldatavalue){
foreach ( $alldatavalue as $neededdatakey=>$neededdatavalue){
#conditions here
foreach (){
if(){
$variable = $data1;
}
if(){
$variable .= $data2;
}
if(){
$variable .= $data3;
}
}
}
echo $variable;
}
?>
data1、data2和data3的条件正确为什么重复打印数据?将您的
echo
语句移到此处
}
//echo $varibale;
}
echo $varibale;//Move here <-----
}
?>
}
//echo$varibale;
}
echo$varibale//搬过来
您需要从所有循环中写出极限
<?php
foreach ( $alldata as $alldatakey=>$alldatavalue){
foreach ( $alldatavalue as $neededdatakey=>$neededdatavalue){
#conditions here
foreach (){
if(){
$varibale = $data1;
}
if(){
$varibale .= $data2;
}
if(){
$varibale .= $data3;
break;
}
}
if(!empty($data3)){
break;
}
}
echo $varibale;
}
?>
unclosed
foreach}
放置unset($varibale)代码>在回显之后,因此您的代码如下所示
<?php
foreach ( $alldata as $alldatakey=>$alldatavalue) {
foreach ( $alldatavalue as $neededdatakey=>$neededdatavalue) {
foreach () {
//internal loop
if() {
$variable = $data1;
}
if() {
$variable .= $data2;
}
if() {
$variable .= $data3;
}
}
}
echo $variable;
unset($variable); // we unset it here so that we only each out the subcat blocks for that key cat not concat all subs and primaries
}
?>
unclosed foreach}和put unset($varibale);在echoDave之后-我使用了它,它几乎工作得很好,但我面临着这样的问题:清除数据,因为它在循环中,如果为空,我将$variable分配为“NIL”代码>它还清除了NIL–如果没有任何数据,我无法插入数据库。unset变量将完全清除变量。请看你的。=正在浓缩所有内容,这就是为什么每次循环都会得到重复的原因。我有必要将数据串联起来,因为它都是一个子类别,是单个类别的结果。知道为什么它返回或拥有数组键的空数据吗?因为我们在数据库中插入数据后清除数据。所以,当foreach再次执行时,它应该包含更新的数据,但它正在清除数组中的一些值。如何避免这个问题?Dave将其作为答案发布!我要接受它!至少将unset
想法作为答案发布。正如您前面所说,它就在那里。尝试将其移出for
循环。我是说在最后一次大括号之后你为什么要抄答案?这已经在Shankar下面的回答中提出了。我不能,因为我正在插入数据,我想要一个接一个的插入,所以希望它刚好在第一个循环结束的上方。Amal-Neeraj的回答比Shankar的答案提前了30分钟。没有打架或抱怨。乐于分享知识。谢谢大家@尼拉库马尔:真的吗?你可能想看一看。Shankar在28分钟前发布了他的答案,15分钟前发布了NeRaJJ,这意味着在两个帖子之间有13分钟的不同。@ NeerajKumar,这不是一个战斗。阿玛尔刚做了一个点。谢谢你的出现,想考虑任何接受的答案。
<?php
foreach ( $alldata as $alldatakey=>$alldatavalue) {
foreach ( $alldatavalue as $neededdatakey=>$neededdatavalue) {
foreach () {
//internal loop
if() {
$variable = $data1;
}
if() {
$variable .= $data2;
}
if() {
$variable .= $data3;
}
}
}
echo $variable;
unset($variable); // we unset it here so that we only each out the subcat blocks for that key cat not concat all subs and primaries
}
?>