【发布时间】:2012-12-11 17:51:05
【问题描述】:
根据我发现的foreach 以添加元素的顺序遍历数组。看这段代码:
$array = array();
$array[0] = "me0";
$array[1] = "me1";
$array[2] = "me2";
$array[4] = "me4";
$array[5] = "me5";
//changing
$array[3] = "me3Changed";
foreach($array as $item)
{
echo $item.'<br />';
}
echo '<br />';
ksort($array);
foreach($array as $item)
{
echo $item.'<br />';
}
哪个输出:
me0
me1
me2
me4
me5
me3Changed
me0
me1
me2
me3Changed
me4
me5
这表明数组没有以某种方式遍历for($i;$i<$arrayLength;$i++)
它是如何遍历的?假设 php 是用 C++ 编写的,它应该使用一些这样做的 C++ 函数。 谁能给我解释一下foreach 是如何遍历数组的?
按索引遍历数组的 C++ 示例:
std::string arr[10];
arr[0] = "me0";
arr[1] = "me1";
arr[2] = "me2";
arr[4] = "me4";
arr[5] = "me5";
//changing
arr[3] = "me3Changed";
for(int x = 0; x < 6;x++)
{
std::cout << arr[x] << std::endl;
}
【问题讨论】:
-
试图将 PHP 的行为合理化,以使其在其他语言中的底层实现可能是也可能不是它是愚蠢的。
-
相关理解foreach的顺序stackoverflow.com/questions/11487374/…