/** * @dataProvider array_reset_provider */ public function test_array_reset($expected, $array, $deep) { $this->assertEquals($expected, array_reset($array, $deep), $deep); }
/** * Reset all numerical indexes of an array (start from zero). * Non-numerical indexes will stay untouched. Returns a new array. * * @param array $array * @param bool|false $deep * * @return array */ function array_reset(array $array, $deep = false) { $target = []; foreach ($array as $key => $value) { if ($deep && is_array($value)) { $value = array_reset($value); } if (is_numeric($key)) { $target[] = $value; } else { $target[$key] = $value; } } return $target; }