From: KayL at cust dot in Operating system: All PHP version: 5.4.6 Package: Arrays related Bug Type: Feature/Change Request Bug description:Re-Request of additional function "array_remove($needle, $haystack)""
Description: ------------ I'd like to re-request the function array_remove($needle, $haystack); for the deletion of one/multiple array element/s from an existing array. Similar to Bug #12129 (by Dave Mertens), but: (zak) "[...] Use: unset($array['key']);" (Kay) "What if I do not know the key, but still want to delete every occurrence of array elements where only the value - not key - is known (and of course keeping the original arrays order)?. This would - in my opinion as well as Mr. Mertens' - complete the native functions for arrays." Example-Input: -------------- $needle = "red"; $haystack = Array("foo"=>"bar", 0=>"red", "would"=>"be cool"); array_remove($needle, $haystack) --> Array("foo"=>"bar", "would"=>"be cool"); $needle = Array("be cool", 0xB16B00B5); $haystack = Array("foo"=>"bar", 8=>0xB16B00B5, "would"=>"be cool"); array_remove($needle, $haystack) --> Array("foo"=>"bar"); My sample function (or this request for that matter) may not be perfect. But please be kind - it's 01:15 AM in Germany and I have to get up for work in about 5 hours... Test script: --------------- function array_remove($needle, Array $hackstack) { if(empty($hackstack)) return Array(); if(!is_array($needle) && !is_string($needle) && !is_numeric($needle)) return $hackstack; $new_array = Array(); foreach($hackstack as $key=>$value) { if(is_array($needle)) { $found = FALSE; foreach($needle as $needle2) { if((string)$needle2 == (string)$value) $found = TRUE; } if(!$found) $new_array[$key] = $value; } else { if((string)$needle != (string)$value) $new_array[$key] = $value; } } return $new_array; } -- Edit bug report at https://bugs.php.net/bug.php?id=62979&edit=1 -- Try a snapshot (PHP 5.4): https://bugs.php.net/fix.php?id=62979&r=trysnapshot54 Try a snapshot (PHP 5.3): https://bugs.php.net/fix.php?id=62979&r=trysnapshot53 Try a snapshot (trunk): https://bugs.php.net/fix.php?id=62979&r=trysnapshottrunk Fixed in SVN: https://bugs.php.net/fix.php?id=62979&r=fixed Fixed in SVN and need be documented: https://bugs.php.net/fix.php?id=62979&r=needdocs Fixed in release: https://bugs.php.net/fix.php?id=62979&r=alreadyfixed Need backtrace: https://bugs.php.net/fix.php?id=62979&r=needtrace Need Reproduce Script: https://bugs.php.net/fix.php?id=62979&r=needscript Try newer version: https://bugs.php.net/fix.php?id=62979&r=oldversion Not developer issue: https://bugs.php.net/fix.php?id=62979&r=support Expected behavior: https://bugs.php.net/fix.php?id=62979&r=notwrong Not enough info: https://bugs.php.net/fix.php?id=62979&r=notenoughinfo Submitted twice: https://bugs.php.net/fix.php?id=62979&r=submittedtwice register_globals: https://bugs.php.net/fix.php?id=62979&r=globals PHP 4 support discontinued: https://bugs.php.net/fix.php?id=62979&r=php4 Daylight Savings: https://bugs.php.net/fix.php?id=62979&r=dst IIS Stability: https://bugs.php.net/fix.php?id=62979&r=isapi Install GNU Sed: https://bugs.php.net/fix.php?id=62979&r=gnused Floating point limitations: https://bugs.php.net/fix.php?id=62979&r=float No Zend Extensions: https://bugs.php.net/fix.php?id=62979&r=nozend MySQL Configuration Error: https://bugs.php.net/fix.php?id=62979&r=mysqlcfg