suchen

Heim  >  Fragen und Antworten  >  Hauptteil

Lassen Sie PHP Zeichenfolgen ignorieren

Array 1:

    $Arr1 = array(
            'name/?' => 'apple',
            'weight' => '30kg',
    );

Jetzt müssen wir prüfen, ob isset( $Arr1['name/fruits'] ) in Array 1 existiert. Kernpunkt:
Wie soll PHP es ausdrücken? Ignorieren Sie Früchte und geben Sie wahr zurück

扔个三星炸死你扔个三星炸死你2728 Tage vor587

Antworte allen(2)Ich werde antworten

  • 漂亮男人

    漂亮男人2017-06-07 09:24:55

    function my_isset($array, $key){
        foreach($array as $k => $v) {
            if (strpos($k, '?') == -1) {
                if ($k == $key) {
                    return true;
                }
            } else {
                $pattern = str_replace('?', '.+', $k);
                $pattern = str_replace('/', '\/', $pattern);
                if (preg_match('/'. $pattern . '/', $key)) {
                    return true;
                }
            }
        }
        return false;
    }
    
    $a = [
        'aa' => 'dddd',
        'xx/?' => 'dd',
    ];
    
    var_dump(my_isset($a, 'aa'), my_isset($a, 'xx/dddd'), my_isset($a, 'xxx'));

    Antwort
    0
  • 过去多啦不再A梦

    过去多啦不再A梦2017-06-07 09:24:55

    根据你的业务逻辑来说,只需要判断key是否在name里面即可,即name/是否在name/fruits中能找到:
    strpos($name , substr($key , 0 , -1))

    Antwort
    0
  • StornierenAntwort