note 92985 added to function.array-merge-recursive

From: Date: Tue, 18 Aug 2009 12:44:16 +0000
Subject: note 92985 added to function.array-merge-recursive
Groups: php.notes 
Request: Send a blank email to php-notes+get-159591@lists.php.net to get a copy of this message
I thought I'd have a go at the array_merge_recursive_distinct() function myself. Allows variable number of arguments! <?php /** * array_merge_recursive_distinct * * Recursively process an array merge all child nodes together * * @return array * @author Dom Hastings */ function array_merge_recursive_distinct() { switch (func_num_args()) { case 0: return array(); break; case 1: return (array) func_get_arg(0); break; default: $a = func_get_args(); $s = (array) array_shift($a); foreach ($a as $i => $b) { if (!is_array($b)) { $b = (array) $b; } foreach ($b as $k => $v) { if (is_numeric($k)) { $s[] = $v; } else { if (isset($s[$k])) { if (is_array($s[$k]) && is_array($v)) { $s[$k] = array_merge_recursive_distinct($s[$k], $v); } else { $s[$k] = $v; } } else { $s[$k] = $v; } } } } break; } return $s; } ?> ---- Server IP: 64.71.164.2 Probable Submitter: 82.71.106.9 ---- Manual Page -- http://www.php.net/manual/en/function.array-merge-recursive.php Edit -- https://master.php.net/note/edit/92985 Del: integrated -- https://master.php.net/note/delete/92985/integrated Del: useless -- https://master.php.net/note/delete/92985/useless Del: bad code -- https://master.php.net/note/delete/92985/bad+code Del: spam -- https://master.php.net/note/delete/92985/spam Del: non-english -- https://master.php.net/note/delete/92985/non-english Del: in docs -- https://master.php.net/note/delete/92985/in+docs Del: other reasons-- https://master.php.net/note/delete/92985 Reject -- https://master.php.net/note/reject/92985 Search -- https://master.php.net/manage/user-notes.php

« previous php.notes (#159591) next »