Thanks for the addition Jochem.. one reason I post here, even if it's a basic example, is because if there's a better way or a chance to learn something new, I want to have that opportunity. Thanks again!
-TG = = = Original message = = = Id like to continue where TG left off ... hth. [EMAIL PROTECTED] wrote: > If I understand what you're asking, then maybe this will help: > > $arrset1 = array("Apples" => 3, "Oranges" => 5, "Apricots" => 1); > $arrset2 = array("Couches" => 6, "Chairs" => 2, "Benches" => 5); > > $alldataarr["Fruits"] = $arrset1; > $alldataarr["Furniture"] = $arrset2; > > Say we want to remove "Chairs", and let's do it the hard way: > > foreach ($alldataarr as $key => $data) > foreach ($data as $subkey => $subdata) > if ($subkey == "Chairs) > unset($alldataarr[$key][$subkey]); > > > > > using foreach $arr as $key => $data you can get the key/index name as well as > the actual value stored in that part of your array. Then all you have to do > is refer back up to the main array using the current $key/$subkey values as > your indexes. > $filter = array( ~'Fruits' => array('Apples' => 1, 'Oranges' => 1), ~'Furniture' => array('Couches' => 1, 'Chairs' => 1), ); $alldataarr = array(); $alldataarr["Fruits"] = array("Apples" => 3, "Oranges" => 5, "Apricots" => 1); $alldataarr["Furniture"] = array("Couches" => 6, "Chairs" => 2, "Benches" => 5); foreach ($alldataarr as $key => $data) if (!isset($filter[$key]) ~// we want it all;. ~continue; $alldataarr[$key]= array_intersect_keys($data, $filter[$key]); // heres one I prepared earlier: /** * array_intersect_keys() * ^--- the internal function (php5.x+?) has no 's' * * returns the all the items in the 1st array whose keys are found in any of the other arrays * * @return array() */ function array_intersect_keys() $args = func_get_args(); $originalArray = $args[0]; $res = array(); if(!is_array($originalArray)) return $res; for($i=1;$i<count($args);$i++) if(!is_array($args[$i])) continue; foreach ($args[$i] as $key => $data) if (isset($originalArray[$key]) && !isset($res[$key])) $res[$key] = $originalArray[$key]; return $res; > > Basic example, but I think you can modify this to work with what you're doing. > > Let me know if you have any questions about this example. > > -TG > > > > = = = Original message = = = > > Hi all, > > I'm really struggling here! I have a large, multi-dimensional array that > I want to "clean-up" a bit before committing to a database. > > I want to remove quite a bit of the array but using the KEYs not the > values. I know the keys I want to keep and I know the keys I want to get > rid of. I want to keep the structure and sequence of the array in tact. > > All of the array traversing functions in PHP seem to either: only work > on the values, or do not allow the removal of elements of the array! > > Can anyone offer a clue bat to a tired old array walker! > > Thanks > > Alan > > > ___________________________________________________________ > Sent by ePrompter, the premier email notification software. > Free download at http://www.ePrompter.com. > ___________________________________________________________ Sent by ePrompter, the premier email notification software. Free download at http://www.ePrompter.com. -- PHP Windows Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php