note 79483 added to function.array-diff-key
| From: | AiFiLTr0 | Date: | Thu, 29 Nov 2007 13:56:21 +0000 |
| Subject: | note 79483 added to function.array-diff-key | ||
| Groups: | php.notes | ||
| Request: | Send a blank email to php-notes+get-132663@lists.php.net to get a copy of this message | ||
The recursive function suggested by '2ge at 2ge dot us' will provide you with empty arrays
if there's no diff.
This variant of the function cleans up empty arrays and fixes a bug in the first suggested version.
It works 100%
.
<?php
function array_diff_key_recursive ($a1, $a2) {
foreach($a1 as $k => $v) {
//$r[$k] = is_array($v) ? $this->array_diff_key_recursive($a1[$k], $a2[$k]) :
array_diff_key($a1, $a2);
if (is_array($v))
{
$r[$k]=$this->array_diff_key_recursive($a1[$k], $a2[$k]);
}else
{
$r=array_diff_key($a1, $a2);
}
if (is_array($r[$k]) && count($r[$k])==0)
{
unset($r[$k]);
}
}
return $r;
}
?>
----
Server IP: 69.147.83.197
Probable Submitter: 79.120.28.249
----
Manual Page -- http://www.php.net/manual/en/function.array-diff-key.php
Edit -- https://master.php.net/note/edit/79483
Del: integrated -- https://master.php.net/note/delete/79483/integrated
Del: useless -- https://master.php.net/note/delete/79483/useless
Del: bad code -- https://master.php.net/note/delete/79483/bad+code
Del: spam -- https://master.php.net/note/delete/79483/spam
Del: non-english -- https://master.php.net/note/delete/79483/non-english
Del: in docs -- https://master.php.net/note/delete/79483/in+docs
Del: other reasons-- https://master.php.net/note/delete/79483
Reject -- https://master.php.net/note/reject/79483
Search -- https://master.php.net/manage/user-notes.php