数组元素的剔除

从数组中去除某个值 假设键值都唯一
比如从打乱的1到10的数组中 去除6

如何书写代码呢?

1.最笨的方法 循环遍历 遇到就删除 然后立刻返回(这一步如果不加 后面将造成没有必要的循环)

<?php
// 1.循环遍历 遇到6进行删除并返回
$array=range(1,10);
shuffle($array);//打乱了结构
foreach ($array as $key => $v)
{
    if($v==6)
    {
        unset($array[$key]);
        break;
    }
}
var_dump($array);
?>

截图如下:

效果如下:

2.利用数组的查找功能 查到6所在的key然后删除

<?php
// 2.查找6所在的键值对
$array=range(1,10);
shuffle($array);//打乱了结构
$find_key=array_search(6,$array);
if($find_key!==false)
{
    unset($array[$find_key]);
}
var_dump($array);
?>

截图如下:

效果如下:

 

3.逆向思维方法 键值反转删除键然后再反转

<?php
// 3.键值反转逆向思维
$array=range(1,10);
shuffle($array);//打乱了结构
$array=array_flip($array);
unset($array[6]);
$array=array_flip($array);
var_dump($array);
?>

截图如下:

效果如下:

 

posted @ 2017-09-12 15:39  李照耀  阅读(559)  评论(0编辑  收藏  举报