使用循环打印PHP数组

50
如果我知道一个数组的长度,如何在循环中打印出它的每个值?

1
你不需要记录数组的长度来迭代它。 - S B
12个回答

128
$array = array("Jonathan","Sampson");

foreach($array as $value) {
  print $value;
}
或者
$length = count($array);
for ($i = 0; $i < $length; $i++) {
  print $array[$i];
}

3
注意,for()循环不能用于带有字符串索引的数组(显然)。 - Pim Jager
3
计数应该预先计算。在你的例子中,计数是在每个循环中计算的。应该这样写:for ($i = 0, $count = count($array); $i < $count; $i++) - ryeguy

13

使用foreach循环,可以遍历所有的键值对:

 foreach($array as $key=>$value){
     print "$key holds $value\n";
 }

或者完整回答你的问题:

 foreach($array as $value){
     print $value."\n";
 }

10

同时使用变量的值和键的方法

foreach($array as $key=>$value){
 print "$key holds $value\n";
}

仅使用变量值

foreach($array as $value){
 print $value."\n";
}

如果你想重复做某件事直到达到数组长度,请使用以下代码

```javascript while (i < arr.length) { // do something i++; } ```
// for loop
for($i = 0; $i < count($array); $i++) {
 // do something with $array[$i]
}

谢谢!


5

这里有个例子:

$array = array("Jon","Smith");
foreach($array as $value) {
  echo $value;
}

请您能否详细阐述一下您的回答并提供更多关于您所提供解决方案的描述? - abarisone

3

我还发现,在你的<pre></pre>标签中使用var_dump或print_r结果会得到更易读的转储。


2

使用foreach函数:

foreach($array as $key => $value) {
  // do something with $key and $value
}

或者使用for:
for($i = 0, $l = count($array); $i < $l; ++$i) {
  // do something with $array[$i]
}

显然,只有在使用foreach循环时才能访问键。

如果您想打印数组(键和)值以进行调试,请使用var_dumpprint_r


2
foreach($array as $key => $value) echo $key, ' => ', $value;

1
while(@$i++<count($a))
echo $a[$i-1];

3v4l.org


1

另一种高级方法称为ArrayIterator。它是更广泛的class的一部分,公开了许多可访问的variablesfunctions。您更有可能在PHP类和大量的面向对象项目中看到这个。

$fnames = ["Muhammed", "Ali", "Fatimah", "Hasan", "Hussein"];

$arrObject = new ArrayObject($fnames);
$arrayIterator = $arrObject->getIterator();

while( $arrayIterator->valid() ){
echo $arrayIterator->current() . "<br />";
$arrayIterator->next();
}

0

在foreach之前foreach::)

reset($array); 
while(list($key,$value) = each($array))
{
  // we used this back in php3 :)
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接