我知道 foreach 到 for循环和 while循环的基本示例,因为我开始编码我没有注意速度执行非常非常重要的脚本从那时起我将每个语句的所有转换为 for loop 。如果它来array
我很困惑-_-。我知道它给了我投票这个。喜欢我宁愿让人们为自己解决问题。
我只需要一些使用for循环语句的指南。如何将以下foreach循环转换为for loop / while循环语句?
$ i = 0; while($ i< 1000000)++ $ i;
for($ i = 0; $ i< 1000000; ++ $ i);
CODE:
<?php
$user['001'] = 'A';
$user['002'] = 'B';
$user['003'] = 'C';
$user['004'] = 'D';
foreach($user as $id => $name)
{
echo '<br>Id='.$id.'Name='.$name;
}
?>
非常感谢。
预期输出类似于foreach输出:
Id=001Name=A
Id=002Name=B
Id=003Name=C
Id=004Name=D
如果我有像
这样的数组键,那该怎么办?$user['AAA'] = 'A'; $user['BBB'] = 'B'; $user['CCC'] = 'C'; $user['DDD'] = 'D';
它将输出为:
Id=AAAName=A Id=AAAName=B Id=AAAName=C Id=AAAName=D
答案 0 :(得分:1)
您显示的for
和while
循环只是递增一个数字,如果该数组的键与这些数字相同,您可以使用该数字来访问数组的元素。换句话说,for
或while
循环与数组无关,你只是使用数字作为数组的键。
如果您的数组键不是简单的连续整数,则这更成问题。您可以尝试从$i
变量构造正确的键,但为什么?您应该只显式遍历数组的键,foreach
是完美的。您可以使用each
或其他许多复杂方式执行此操作:
while (list($key, $value) = each($array)) {
...
}
但我怀疑它会比foreach
快得多。
答案 1 :(得分:0)
$length = count($user);
for ($i = 0; $i < $length; $i++) {
print $user[$i];
}
编辑:或类似的东西?
$user = array ( '001' => 'A',
'002' => 'B',
'033' => 'C' );
while( list ( $id, $name) = each ( $user) )
{
echo '<br>Id=' .$id. 'Name='.$name;
}
编辑:也适用于你r AAA = A等案例
答案 2 :(得分:0)
像这样......
<?php
$user['001'] = 'A';
$user['002'] = 'B';
$user['003'] = 'C';
$user['004'] = 'D';
while (current($user)) {
echo '<br>Id='.key($user).'Name='.$user[key($user)];
next($user);
}
答案 3 :(得分:0)
试试这个
$user['001'] = 'A';
$user['002'] = 'B';
$user['003'] = 'C';
$user['004'] = 'D';
$keys = array_keys($user);
$length = sizeof($user);
for($i=0; $i<$length; $i++) {
echo 'id: '.$keys[$i].' value: '.$user[$keys[$i]].'<br />';
}