\Nette\Utils\Arrays a práce s vícerozměrnými poli

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
2bfree
Člen | 248
+
0
-

Hodilo by se, kdyby \Nette\Utils\Arrays umělo pracovat s vícerozměrnými poli.

Tedy aby se nemuselo stále dokola bastlit následující
http://www.php.net/…in-array.php#…

Filip Procházka
Moderator | 4668
+
0
-

Implementace hrozná.

function inArray($need, $haystack, $recursive = TRUE)
{
	if (in_array($needle, $haystack, TRUE))  {
		return TRUE;

	} elseif ($recursive) {
		foreach (array_filter($haystack, 'is_array') as $array) {
			if (inArray($needle, $array)) {
				return TRUE;
			}
		}
	}

	return FALSE;
}

Napiš test a pošli pull ;)

Editoval HosipLan (28. 5. 2012 9:51)

hrach
Člen | 1834
+
0
-
in_array($needle, Nette\Utils\Arrays::flatten($haystack));

Api

Editoval hrach (28. 5. 2012 10:10)

Filip Procházka
Moderator | 4668
+
0
-

To je pěkné řešení, ale in_array() hledá i pole v poli.

hrach
Člen | 1834
+
0
-

Uhuh, tak to sem v zivote nepotreboval :D