组php foreach循环(闭合)
如何将php foreach分组?我已经尝试了5天,但仍然无法使其工作 我不知道php foreach如何工作,但我正在学习, 谢谢大家的建议 原始php:组php foreach循环(闭合),php,arrays,foreach,count,Php,Arrays,Foreach,Count,如何将php foreach分组?我已经尝试了5天,但仍然无法使其工作 我不知道php foreach如何工作,但我正在学习, 谢谢大家的建议 原始php: <?php if(isset($this->leading) && count($this->leading)): ?> <?php foreach($this->leading as $key=>$item): ?> <?php
<?php if(isset($this->leading) && count($this->leading)): ?>
<?php foreach($this->leading as $key=>$item): ?>
<?php
$this->item=$item;
echo $this->loadTemplate('item');
?>
<?php endforeach; ?>
<?php endif; ?>
<?php if(isset($this->primary) && count($this->primary)): ?>
<?php foreach($this->primary as $key=>$item): ?>
<?php
$this->item=$item;
echo $this->loadTemplate('item');
?>
<?php endforeach; ?>
<?php endif; ?>
<?php if(isset($this->secondary) && count($this->secondary)): ?>
<?php foreach($this->secondary as $key=>$item): ?>
<?php
$this->item=$item;
echo $this->loadTemplate('item');
?>
<?php endforeach; ?>
<?php endif; ?>
我试过了
<?php if(isset($this->leading) && count($this->leading)) && (isset($this->primary) && count($this->primary)) && (isset($this->secondary) && count($this->secondary)): ?>
<!-- Leading items -->
<?php foreach (array($this->leading, $this->primary, $this->secondary) as $key=>$item) ($this->leading as $key=>$item): ?>
<?php
// Load category_item.php by default
$this->item=$item;
echo $this->loadTemplate('item');
?>
<?php endforeach; ?>
<?php endif; ?>
但不起作用
一如既往,我们感谢您的帮助
谢谢!每个人:)
谢谢你,史蒂文 你的意思是这样的吗
<?php
$arr = array();
$arr[] = $this->leading;
$arr[] = $this->primary;
$arr[] = $this->secondary;
foreach($arr as $v) {
if(is_array($v) && (count($v) > 0)) {
foreach($v as $item) {
$this->item=$item;
echo $this->loadTemplate('item');
}
}
}
?>
定义如下函数:
function foobar ($tmp) {
if(isset($tmp) && count($tmp)) {
foreach ($tmp as $key => $item) {
// Load category_item.php by default
$this->item = $item;
echo $this->loadTemplate('item');
}
}
}
并将其与您的数据一起调用:
foobar($this->leading);
foobar($this->primary);
foobar($this->secondary);
处理此问题的最简单方法是首先构建一个包含所有所需项的列表,然后仅使用一个foreach循环遍历该列表 我还建议在是否定义了三个变量(前导、主要、次要)时保持一致。如果您可以保证它们已设置并且是数组-即使它们是空数组,也可以使您的代码变得如此简单:
<?php
$items = array_merge($this->leading, $this->primary, $this->secondary);
foreach ($items as $Item) {
$this->item = $item;
$this->loadTemplate('item');
}
?>
如果您真的不知道是否设置了变量,并且无法在其他地方重构代码来更改此设置,您可以这样做:
<?php
$items = array();
if (isset($this->leading)) $items = array_merge($items, $this->leading);
if (isset($this->primary)) $items = array_merge($items, $this->primary);
if (isset($this->secondary)) $items = array_merge($items, $this->secondary);
foreach ($items as $Item) {
$this->item = $item;
$this->loadTemplate('item');
}
?>
你为什么在每行上都使用
?我不明白为什么你可以在一个标记中编写所有代码,却在每行上都把代码和标记弄乱了?你真的很喜欢在每行代码中都有
,不是吗?但这真的很奇怪。请重新格式化它-很难阅读。你到底想做什么?这3个“foreach”似乎每个都做了不同的事情,所以我认为它们都应该保留……对不起,我不知道php foreach是如何工作的,但我正在学习它谢谢你的建议M42:)