我写了个函数,过滤数组的.但是总是漏了一个值,谁帮我看看?

WBOY
Lepaskan: 2023-03-02 07:34:02
asal
1045 orang telah melayarinya

就是过滤最小值,最大值的..
但是,当
user_array_filter( $aTxt, 'After_A_Num' , $iMaxStamp);
的时候,发现 居然漏掉了一个 和 $iMaxStamp 相等的值,谁帮我看看怎么回事?
我也看不出毛病..
我写了个函数,过滤数组的.但是总是漏了一个值,谁帮我看看?

<code>
function user_array_filter( &$array, $callback )
//后面可以跟第3个参数,作为 $callback 的参数;
{
    $args = func_get_args();    //把function 所有参数保存成数组;


    if( count($args)  $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;
    }
</code>
Salin selepas log masuk
Salin selepas log masuk

回复内容:

就是过滤最小值,最大值的..
但是,当
user_array_filter( $aTxt, 'After_A_Num' , $iMaxStamp);
的时候,发现 居然漏掉了一个 和 $iMaxStamp 相等的值,谁帮我看看怎么回事?
我也看不出毛病..
我写了个函数,过滤数组的.但是总是漏了一个值,谁帮我看看?

<code>
function user_array_filter( &$array, $callback )
//后面可以跟第3个参数,作为 $callback 的参数;
{
    $args = func_get_args();    //把function 所有参数保存成数组;


    if( count($args)  $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;
    }
</code>
Salin selepas log masuk
Salin selepas log masuk

明确下哈,你现在的问题(以下伪代码)是如果:

<code>$a = [1,3,45,6,6,7,7,5];
user_array_filter($a, 'After_A_Num', 6);
var_dump($a);    //目前的结果[7,7,45]</code>
Salin selepas log masuk

但是你期望的结果是[6,6,7,7,45],是这样吗?
如果是这样的话就修改After_A_Num这个函数,大于改成大于等于。

还有就是你的函数这样命名我觉得不太好

Label berkaitan:
php
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!