Re: any solution about array_walk with pass-by-referenceUseData?

From: Date: Wed, 13 Jan 2010 03:01:51 +0000
Subject: Re: any solution about array_walk with pass-by-referenceUseData?
References: 1 2 3  Groups: php.internals 
Request: Send a blank email to internals+get-46671@lists.php.net to get a copy of this message

Joey Smith wrote:
This might be better served by taking it to php-general, because I don't think you need to pin your question so hard to the behaviour of array_walk(). Here's a quick example of (if I understood your question correctly) how you might solve it using array_udiff_uassoc and 5.3's new 'closure' syntax (not required for this, but I do so enjoy using them!)
They are such an excellent addition to the language
<?php $return=array(); $disable_full=array('a','b','c'); $disable_start=array('_','!','HTTP'/*,'ddd','ddd','ddd','ddd','ddd'*/); $check_array=array("a"=>1,"_POST"=>'c',"HTTP"=>"f","ddd"=>array('fefe')); function buildFilter($keys, $starts_with) { return function ($a, $b) use ($keys, $starts_with) {
      if (in_array($a, $keys)) return 0;
      foreach($starts_with as $value) if (strpos($a, $value)===0) return 0;
      return 1;
}; } $foo = buildFilter($disable_full, $disable_start); var_dump(array_udiff_uassoc($check_array, $disable_full, $disable_start, function () { return 0; }, $foo));


Thread (3 messages)

« previous php.internals (#46671) next »