为什么array_values比foreach更好?

时间:2017-09-14 11:55:37

标签: php arrays

为什么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 都会返回相同的结果......

是关于表现吗?

1 个答案:

答案 0 :(得分:9)

  1. 少量代码。
  2. 更容易理解代码,因为它恰好是array_values的用途,但除非您阅读并理解,否则foreach可以做任何事情。
  3. array_values是在幕后用C实现的本机PHP函数,可能比自定义PHP代码更高效。