为什么使用
array_values()
比使用 foreach 循环对数组重新索引更好?
示例 1:
$arrays = [
1 => '0',
2 => '1',
3 => '2',
4 => '3',
5 => '',
6 => '',
7 => '7',
8 => [
0 => 'toto',
1 => 'manu',
2 => 'noé',
3 => 'david'
]
];
$arrayNonAssoc = [];
foreach ($arrays as $array) {
$arrayNonAssoc[] = $array;
}
因此,示例1是不应该发生的错误,而...
示例2:
$arrays = [
1 => '0',
2 => '1',
3 => '2',
4 => '3',
5 => '',
6 => '',
7 => '7',
8 => [
0 => 'toto',
1 => 'manu',
2 => 'noé',
3 => 'david'
]
];
var_dump(array_values($arrays));
我已经阅读过相关内容,但未找到对此的解释。无论是示例1还是示例2都返回相同的结果...
这是关于性能的吗?
7
的条目)这一事实外,这取决于具体情况...但一般来说,对于较小的数组,array_values()
是一个单独的函数调用,而不是使用foreach的代码块…一个函数调用与一个循环和赋值相比。 - Mark Bakerarray_values()
而不是foreach()
(反之亦然)。投票关闭这个问题,因为它不适合在 SO 上: 对这个问题的回答往往基本上都是基于意见,而不是事实、参考资料或特定专业知识。 - salathe