如何解决在php中过滤数组,同时具有与值和键有关的条件
|| 我正在尝试过滤一个数组,其中应该使用filter函数检查多个条件。例如,如果元素x以大写字母开头,则过滤器函数应返回true。除非元素x之前的元素满足某些其他条件,否则元素x不应停留在数组中,因此filter函数应返回false。 问题是,array_filter中的回调函数仅传递元素的值,而不传递其键...用array_search做一些魔术可能会起作用,但是我只是想知道我是否为此目的而在错误的地方寻找问题?解决方法
听起来像是旧的foreach循环的一种情况:
foreach ($arr as $k => $v) {
// filter
if (!$valid)
unset($arr[$k]);
}
,$newArray=array();
foreach($oldArray as $key=>$value){
if(stuff){
$newArray[$key]=$value;
}
}
要么
foreach($array as $key=>$value){
if(stuff){
unset($array[$key]);
}
}
,您使用简单的foreach吗?
$prev;
$first = true;
$result = array();
foreach ($array as $key => $value)
{
if ($first)
{
$first = false;
// Check first letter. If successful,add it to $result
$prev = $value;
continue; // with this we are ignoring the code below and starting next loop.
}
// check $prev\'s first letter. if successful,use continue; to start next loop.
// the below code will be ignored.
// check first letter... if successful,add it to $result
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。