note 92702 modified in book.array by danbrown

From: Date: Tue, 04 Aug 2009 17:46:48 +0000
Subject: note 92702 modified in book.array by danbrown
References: 1  Groups: php.notes 
Request: Send a blank email to php-notes+get-159104@lists.php.net to get a copy of this message
Made this function to delete elements in an array; <?php function array_del_elm($input_array, $del_indexes) { if (is_array($del_indexes)) { $indexes = $del_indexes; } elseif(is_string($del_indexes)) { $indexes = explode($del_indexes, " "); } elseif(is_numeric($del_indexes)) { $indexes[0] = (integer)$del_indexes; } else return; $del_indexes = null; $cur_index = 0; if (sort($indexes)) for($i=0; $i<count($input_array); $i++) { if ($i == $indexes[$cur_index]) { $cur_index++; if ($cur_index == count($indexes)) return $output_array; continue; } $output_array[] = $input_array[$i]; } return $output_array; } ?> but then i saw the methods of doing the same by Tyler Bannister & Paul, could see that theirs were faster, but had floors regarding deleting multiple elements thus support of several ways of giving parameters. I combined the two methods to this to this: <?php function array_del_elm($target_array, $del_indexes) { if (is_array($del_indexes)) { $indexes = $del_indexes; } elseif(is_string($del_indexes)) { $indexes = explode($del_indexes, " "); } elseif(is_numeric($del_indexes)) { $indexes[0] = (integer)$del_indexes; } else return; unset($del_indexes); for($i=0; $i<count($indexes); $i++) { unset($target_array[$indexes[$i]]); } return $target_array; } ?> Fast, compliant and functional ;) --was-- Made this function to delete elements in an array; <?php function array_del_elm($input_array, $del_indexes) { if (is_array($del_indexes)) { $indexes = $del_indexes; } elseif(is_string($del_indexes)) { $indexes = explode($del_indexes, " "); } elseif(is_numeric($del_indexes)) { $indexes[0] = (integer)$del_indexes; } else return; $del_indexes = null; $cur_index = 0; if (sort($indexes)) for($i=0; $i<count($input_array); $i++) { if ($i == $indexes[$cur_index]) { $cur_index++; if ($cur_index == count($indexes)) return $output_array; continue; } $output_array[] = $input_array[$i]; } return $output_array; } ?> but then i saw the methods of doing the same by Tyler Bannister & Paul, could see that theirs were faster, but had floors regarding deleting multiple elements thus support of several ways of giving parameters. I combined the two methods to this to this: <?php function array_del_elm($target_array, $del_indexes) { if (is_array($del_indexes)) { $indexes = $del_indexes; } elseif(is_string($del_indexes)) { $indexes = explode($del_indexes, " "); } elseif(is_numeric($del_indexes)) { $indexes[0] = (integer)$del_indexes; } else return; unset($del_indexes); for($i=0; $i<count($indexes); $i++) { unset($target_array[$indexes[$i]]); } return $target_array; } Fast, compliant and functional ;) ?> http://php.net/manual/en/book.array.php

« previous php.notes (#159104) next »