我发现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;
}
答案 0 :(得分:4)
PHP数组是有序的键值存储。这意味着密钥有一个顺序,这是它们被添加到数组的顺序(或拼接在一起或排序或确定顺序的任何顺序)。 foreach
以这种固有的内置顺序遍历数组。
我不知道这是否与C中的任何内容相比.PHP的数组是其独特的功能之一。大多数语言都有键值存储(字典/散列)或有序数组(列表)。 PHP将有序键值存储作为唯一的数组类型。
答案 1 :(得分:0)