Php array_keys()的参数中包含普通数组

Php array_keys()的参数中包含普通数组,php,arrays,Php,Arrays,为什么输出是这样的?我搜索了手册,但找不到参数中包含普通数组的array_keys()示例 那么,有人能解释为什么输出是这样的吗 常识告诉我,这是因为在普通数组中,键是它的索引,即0,1,2在PHP中,所有数组实际上都是关联数组。 即使您没有申报: $arr = array("value1", "value2", "value3"); 这和 $arr = array(0 => "value1", 1 => "value2", 2 => "value3"); 因此PHP会自动

为什么输出是这样的?我搜索了手册,但找不到参数中包含普通数组的array_keys()示例

那么,有人能解释为什么输出是这样的吗


常识告诉我,这是因为在普通数组中,键是它的索引,即
0
1
2
在PHP中,所有数组实际上都是关联数组。 即使您没有申报:

$arr = array("value1", "value2", "value3");
这和

$arr = array(0 => "value1", 1 => "value2", 2 => "value3");

因此PHP会自动为您添加键。

您的常识是正确的。创建不带关键点的数组时,将对其进行数字索引。在这样的数组上执行
数组\u key
时,将提取数值键。

“普通”数组键从0开始,而不是从1开始。。。。这在PHP docsI编辑的0,1,2。。。。。为什么会变回1,2,3你还期望什么?PHP中的数组是基于零的。什么是“正常”数组?看起来@user569711编辑了这个问题,并在问题被删除大约4分钟后将0,1,2更改为1,2,3posted@MarkBaker-我不认为我编辑了代码,所以可能是在原始帖子中。我刚刚编辑了这篇文章。我道歉@PeeHaa我写了一些令人困惑和毫无意义的东西(
$arr==array\u key(array\u flip($arr))
)。你完全正确;)答案已编辑。
$arr = array("value1", "value2", "value3");
$arr = array(0 => "value1", 1 => "value2", 2 => "value3");