开发者

Removing an element from an array (PHP)

I want to remove an element from a PHP array (and shrink the array size). Just looking at the PHP docs, it seems this can be done using array_slice() and array_merge()

so I am guessing (off the top of my head) that some combination of array_merge() and array_slice will work. However, array_slice() requires an index (not a key), so I'm not sure how to quickly cobble these functions together for a solution.

Has anyone implemented such a function before?. I'm sure it must be only a few lines long, but I cant somehow get my h开发者_运维技巧ead around it (its been one of those days) ...

Actually, I just came up with this cheesy hack when writing up this question....

function remove_from_array(array $in, value) {
   return array_diff($in, (array)$value);
}

too ugly? or will it work (without any shocking side effects)?


This functionality already exists; take a look at unset.

http://php.net/manual/en/function.unset.php


$a = array('foo' => 'bar', 'bar' => 'gork');
unset($a['bar']);
print_r($a);

output will be:

array(
[foo] => bar
)


There's the array_filter function that uses a callback function to select only wanted values from the array.


you want an unset by value. loop through the array and unset the key by value.


unset($my_array['element']);

Won't work?


This code can be replaced by single array_filter($arr) call


foreach($array as $key => $value) {
    if($value == "" || $value == " " || is_null($value)) {
        unset($array[$key]);
    }
}

/*
and if you want to create a new array with the keys reordered accordingly...
*/
$new_array = array_values($array);
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜