From 6863e5d2abe02c593bdda38a4c3e033007222d4b Mon Sep 17 00:00:00 2001 From: Peter Cowburn Date: Tue, 17 Apr 2012 18:56:19 +0000 Subject: [PATCH] usort closure example (patch by Benjamin Kuz) git-svn-id: https://svn.php.net/repository/phpdoc/en/trunk@325271 c90b9560-bf6c-de11-be94-00142212c4b1 --- reference/array/functions/usort.xml | 35 +++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/reference/array/functions/usort.xml b/reference/array/functions/usort.xml index d19dc67bbb..eb447c5545 100644 --- a/reference/array/functions/usort.xml +++ b/reference/array/functions/usort.xml @@ -207,6 +207,41 @@ foreach ($a as $item) { b c d +]]> + + + + + <function>usort</function> example using a <link linkend="functions.anonymous">closure</link> + to sort a multi-dimensional array + + + 'z', 'key_b' => 'c'); +$array[1] = array('key_a' => 'x', 'key_b' => 'b'); +$array[2] = array('key_a' => 'y', 'key_b' => 'a'); + +function build_sorter($key) { + return function ($a, $b) use ($key) { + return strnatcmp($a[$key], $b[$key]); + }; +} + +usort($array, build_sorter('key_b')); + +foreach ($array as $item) { + echo $item['key_a'] . ', ' . $item['key_b'] . "\n"; +} +?> +]]> + + &example.outputs; + +