From e81a9e2e71f119bee2038a6dd34d006fb9b426ce Mon Sep 17 00:00:00 2001 From: Tobias Schultze Date: Wed, 25 Jan 2012 13:34:39 +0100 Subject: [PATCH] Improved random function --- lib/Twig/Extension/Core.php | 8 +++++--- 1 files changed, 5 insertions(+), 3 deletions(-) diff --git a/lib/Twig/Extension/Core.php b/lib/Twig/Extension/Core.php index 20cf474..afa7073 100644 --- a/lib/Twig/Extension/Core.php +++ b/lib/Twig/Extension/Core.php @@ -299,9 +299,11 @@ function twig_random($values) $values = iterator_to_array($values); } - $keys = array_keys($values); + if (0 === count($values)) { + throw new Twig_Error_Runtime('The random function cannot pick from an empty array.'); + } - return $values[$keys[mt_rand(0, count($values) - 1)]]; + return $values[array_rand($values, 1)]; } /** @@ -489,7 +491,7 @@ function _twig_markup2string(&$value) function twig_array_merge($arr1, $arr2) { if (!is_array($arr1) || !is_array($arr2)) { - throw new Twig_Error_Runtime('The merge filter only work with arrays or hashes.'); + throw new Twig_Error_Runtime('The merge filter only works with arrays or hashes.'); } return array_merge($arr1, $arr2); -- 1.7.2.5