Small fixes (PR #3022)

- Fix incorrect variable in mb_strlen() compat
- Micro-optimization of array_replace(), array_replace_recursive() compat
diff --git a/system/core/compat/array.php b/system/core/compat/array.php
index b291703..07dae21 100644
--- a/system/core/compat/array.php
+++ b/system/core/compat/array.php
@@ -163,7 +163,7 @@
 		$array = array_shift($arrays);
 		$c--;
 
-		for ($i = 0, $c = count($arrays); $i < $c; $i++)
+		for ($i = 0; $i < $c; $i++)
 		{
 			if ( ! is_array($arrays[$i]))
 			{
@@ -218,7 +218,7 @@
 		$array = array_shift($arrays);
 		$c--;
 
-		for ($i = 0, $c = count($arrays); $i < $c; $i++)
+		for ($i = 0; $i < $c; $i++)
 		{
 			if ( ! is_array($arrays[$i]))
 			{
diff --git a/system/core/compat/mbstring.php b/system/core/compat/mbstring.php
index 91ea801..314dbe9 100644
--- a/system/core/compat/mbstring.php
+++ b/system/core/compat/mbstring.php
@@ -63,7 +63,7 @@
 	{
 		if (ICONV_ENABLED === TRUE)
 		{
-			return iconv_strlen($str, isset($charset) ? $charset : config_item('charset'));
+			return iconv_strlen($str, isset($encoding) ? $encoding : config_item('charset'));
 		}
 
 		log_message('debug', 'Compatibility (mbstring): iconv_strlen() is not available, falling back to strlen().');