[prev in list] [next in list] [prev in thread] [next in thread] 

List:       php-internals
Subject:    Re: [PHP-DEV] any solution about array_walk with pass-by-reference
From:       Joey Smith <joey () joeysmith ! com>
Date:       2010-01-13 0:53:40
Message-ID: 20100113005340.GA5030 () joeysmith ! com
[Download RAW message or body]

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!)

<?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));


-- 
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic