我需要更换我的" foreach" " for",但实际上我不知道如何。 这是我的PHP代码的一部分:
$r = "";
$j = 0;
foreach ($orgs as $k => $v) {
echo "\n\r" . $v->id . "\n\r";
if (1) {
$a_view_modl = ArticleView :: model($v->id, $v->id);
$connection = $a_view_modl->getDbConnection();
谢谢!
答案 0 :(得分:2)
$r = "";
$j = 0;
foreach ($orgs as $k => $v) {
echo "\n\r" . $v->id . "\n\r";
if (1) { //you don't really need this, because it's allways true
$a_view_modl = ArticleView :: model($v->id, $v->id);
$connection = $a_view_modl->getDbConnection();
如果$orgs
是关联数组,则变为:
$r = "";
$j = 0;
for($i = 0; $i < count($orgs); $i++)
{
echo "\n\r" . $orgs[$i]->id . "\n\r";
$a_view_modl = ArticleView :: model($orgs[$i]->id, $orgs[$i]->id);
$connection = $a_view_modl->getDbConnection();
}
如果你选择这个解决方案,最好先做一些检查。
如果您使用foreach
实现解决方案(在这种情况下更具可读性),您可以增加或减少给定变量,如下所示:
$i++; //if you want the increment afterwards
++$i; //if you want the increment before you read your variable
相同的减量:
$i--; //decrement after reading the variable
--$i; //decrement before you read the variable
答案 1 :(得分:0)
foreach
循环只是一个更易读的for
循环。它接受一个数组,并将当前键(在本例中为索引)存储到$k
,将值存储到$v
。
然后,$v
具有您在代码段中使用的值
for循环只接受索引数组,而不接受关联数组。
我们可以通过将$v
替换为$orgs[ index ]
来重写代码,其中index从0开始。
$r = "";
$j = 0;
for ($i = 0; $i < count($orgs); $i++) {
echo "\n\r" . $orgs[$i]->id . "\n\r";
if (1) {
$a_view_modl = ArticleView::model($orgs[$i]->id, $orgs[$i]->id);
$connection = $a_view_modl->getDbConnection();
答案 2 :(得分:0)
$r = "";
$j = 0;
for($i = 0 ; $i < count($orgs); $i++)
{
$v = $orgs[$i];
echo "\n\r" . $v->id . "\n\r";
if (1) {
$a_view_modl = ArticleView :: model($v->id, $v->id);
$connection = $a_view_modl->getDbConnection();
}
答案 3 :(得分:0)
foreach ($orgs as $k => $v) {
// Your stuff
}
for loop
for ($i = 0; $i < count($orgs); $i++) {
// Your stuff ... use $orgs[$i];
}