php 删除数组中的值

fxs_2008 2010-11-09 10:16:20
如果一个值在数组中,删除它。


if(in_array($a, $arr)){
从$arr中删除$a

}

除了foreach 外,大家有什么好的算法?
...全文
410 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhang6464 2010-11-09
  • 打赏
  • 举报
回复
这个貌似挺好,就不知效率咋样,要是太慢还不如自己写循环呢啊
[Quote=引用 5 楼 jzh2004 的回复:]
用函数array_diff

PHP code

$a = array("a"=>"123","b"=>"12345","c"=>"eerr","d"=>"345","e"=>"12345");
$b = array("del"=>"12345");
$a = array_diff($a,$b);
print_r($a);


结果:
Array ( [a] => 123 [……
[/Quote]
toice 2010-11-09
  • 打赏
  • 举报
回复
unset($arr[i])
沪php攻城师 2010-11-09
  • 打赏
  • 举报
回复
用函数array_diff

$a = array("a"=>"123","b"=>"12345","c"=>"eerr","d"=>"345","e"=>"12345");
$b = array("del"=>"12345");
$a = array_diff($a,$b);
print_r($a);

结果:
Array ( [a] => 123 [c] => eerr [d] => 345 )
zhang6464 2010-11-09
  • 打赏
  • 举报
回复
无序数组吗?
那除了遍历就只有预先做映射处理了吧,遍历一次全部映射,可能之后需要循环删除的时候会提高不少效率
heyli 2010-11-09
  • 打赏
  • 举报
回复
翻了手册还有 array_keys 返回一个数组
amani11 2010-11-09
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 heyli 的回复:]

array_search 在找到的情况下返回键名,否则返回 FALSE
应该会比循环快点
[/Quote]

可惜只返回一个结果


某些情况下,可以考虑数组、下标反转。
heyli 2010-11-09
  • 打赏
  • 举报
回复
array_search 在找到的情况下返回键名,否则返回 FALSE
应该会比循环快点

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧