Öneki ile dizi filtre - bu işlevin adı neydi?

4 Cevap php

Ben aşağıdaki üyeleri ile bir dizi var ki:

car_porsche
car_mercedes
car_toyota
motorcycle_suzuki
motorcycle_honda
motorcycle_motoguzzi

nasıl tüm unsurları ile başlayan bir dizi alabilirsiniz car_? Bunun için bir yerli işlev oldu ama adını unuttum.

Ne demek hangi işlevi biliyor musunuz? Ben / foreach / array_filter ile bunu nasıl biliyor. Ben tam olarak bu bir işlevi olduğunu eminim.

4 Cevap

Regexp it `Bu durumda strpos () kullanmak daha iyidir, işlemek için çok fazla zaman alır:

foreach($arr AS $key => $val)
if(strpos(" ".$val, "car_") == 1)     
    $cars[$key] = $val;

Bu da tuşları ile çalışır:

Ben bu amaç için array_filter() kullanabilirsiniz düşünüyorum.

Siz size dönen dizide öneki bırakarak seçeneği sunan basit bir rutin yazabilirsiniz:

function filter_by_key_prefix ( $arr, $prefix, $drop_prefix=false ) {
        $params = array();
        foreach( $arr as $k=>$v ) {
            if ( strpos( $k, $prefix ) === 0 ) {
                if ( $drop_prefix ) {
                    $k = substr( $k, strlen( $prefix ) );
                }
                $params[ $k ] = $v;
            }
        }
        return $params;
    }