时间:2021-07-01 10:21:17 帮助过:2人阅读
就是过滤最小值,最大值的..
但是,当
user_array_filter( $aTxt, 'After_A_Num' , $iMaxStamp);
的时候,发现 居然漏掉了一个 和 $iMaxStamp 相等的值,谁帮我看看怎么回事?
我也看不出毛病..
function user_array_filter( &$array, $callback )
//后面可以跟第3个参数,作为 $callback 的参数;
{
$args = func_get_args(); //把function 所有参数保存成数组;
if( count($args) < 2 )
exit('function user_array_filter()参数错误 , 最少有两个参数.');
if( count($args) == 2 ) //如果俩参数,就是有 $arr 和 $callback
{
foreach( $array as $k => $v )
{
$result = $callback($v);
if( !$result ) //如果 function 返回 false ;
{
unset( $array[$k] );
}
}
}
else
{
$limit = $args[2]; // [0]->处理数组 , [1]->function , [2]->value
foreach( $array as $k => $v )
{
$result = $callback($v, $limit);
if( !$result ) //如果 function 返回 false ;
{
unset( $array[$k] );
}
}
}
$array = array_values($array); //把键重定义;
}
function Before_A_Num($num , $limit)
{
if ($num < $limit)
return true;
return false;
}
function After_A_Num($num , $limit)
{
if ($num > $limit)
return true;
return false;
}
就是过滤最小值,最大值的..
但是,当
user_array_filter( $aTxt, 'After_A_Num' , $iMaxStamp);
的时候,发现 居然漏掉了一个 和 $iMaxStamp 相等的值,谁帮我看看怎么回事?
我也看不出毛病..
function user_array_filter( &$array, $callback )
//后面可以跟第3个参数,作为 $callback 的参数;
{
$args = func_get_args(); //把function 所有参数保存成数组;
if( count($args) < 2 )
exit('function user_array_filter()参数错误 , 最少有两个参数.');
if( count($args) == 2 ) //如果俩参数,就是有 $arr 和 $callback
{
foreach( $array as $k => $v )
{
$result = $callback($v);
if( !$result ) //如果 function 返回 false ;
{
unset( $array[$k] );
}
}
}
else
{
$limit = $args[2]; // [0]->处理数组 , [1]->function , [2]->value
foreach( $array as $k => $v )
{
$result = $callback($v, $limit);
if( !$result ) //如果 function 返回 false ;
{
unset( $array[$k] );
}
}
}
$array = array_values($array); //把键重定义;
}
function Before_A_Num($num , $limit)
{
if ($num < $limit)
return true;
return false;
}
function After_A_Num($num , $limit)
{
if ($num > $limit)
return true;
return false;
}
明确下哈,你现在的问题(以下伪代码)是如果:
$a = [1,3,45,6,6,7,7,5];
user_array_filter($a, 'After_A_Num', 6);
var_dump($a); //目前的结果[7,7,45]
但是你期望的结果是[6,6,7,7,45]
,是这样吗?
如果是这样的话就修改After_A_Num
这个函数,大于改成大于等于。
还有就是你的函数这样命名我觉得不太好