时间:2021-07-01 10:21:17 帮助过:4人阅读
边学习,边研究,不会删除的数组的元素..
$arr = Array(1 , 2 , 3713231987,3710001690,3713182016,3714441990,3713231932);
user_array_filter($arr, 'myGt' , 123 ) ;
echo '';print_r($arr);echo '
';
function user_array_filter( &$array, $callback )
{
$args = func_get_args(); //把function 所有参数保存成数组;
if( count($args) < 2 )
exit('function user_array_filter()参数错误 , 最少有两个参数.');
if( count($args) == 2 )
{
foreach( $array as $k => $v )
{
$result = $callback($v);
if( !$result )
{
return false;//★★★★★★★★★★★★★★★★★★★★★★
}
}
}
else
{
$limit = $args[2]; // [0]->处理数组 , [1]->function , [2]->value
foreach( $array as $k => $v )
{
$result = $callback($v, $limit);
if( !$result )
{
return false;//★★★★★★★★★★★★★★★★★★★★★★
}
}
}
}
function myGt($val, $limit = 88){
if ($val >= $limit)
return true;
return false;
}
这个就是删除数组中小于123的,
我做实验,结果不行,请问怎么改改?
边学习,边研究,不会删除的数组的元素..
$arr = Array(1 , 2 , 3713231987,3710001690,3713182016,3714441990,3713231932);
user_array_filter($arr, 'myGt' , 123 ) ;
echo '';print_r($arr);echo '
';
function user_array_filter( &$array, $callback )
{
$args = func_get_args(); //把function 所有参数保存成数组;
if( count($args) < 2 )
exit('function user_array_filter()参数错误 , 最少有两个参数.');
if( count($args) == 2 )
{
foreach( $array as $k => $v )
{
$result = $callback($v);
if( !$result )
{
return false;//★★★★★★★★★★★★★★★★★★★★★★
}
}
}
else
{
$limit = $args[2]; // [0]->处理数组 , [1]->function , [2]->value
foreach( $array as $k => $v )
{
$result = $callback($v, $limit);
if( !$result )
{
return false;//★★★★★★★★★★★★★★★★★★★★★★
}
}
}
}
function myGt($val, $limit = 88){
if ($val >= $limit)
return true;
return false;
}
将user_array_filter里面的else改成下面代码
else
{
$limit = $args[2]; // [0]->处理数组 , [1]->function , [2]->value
foreach( $array as $k => $v )
{
$result = $callback($v, $limit);
if( !$result )
{
unset($array[$k]);
}
}
}
ps:你要删除数组元素的话可以foreach数组然后在循环里面判断不满足条件的把整个键unset()掉就可以