1

次のようにMySQLからアドレスを取得しました:

$address="This Street, Nice Area, That Country";
$address="This Street, Superb Area, Which Country";
$address="This Street, Fine Area, A Country";

今、私がやろうとしているのは AREA を見つけることです$area=array("Nice", "Good")。したがって、で定義された値$areaが見つかった$address場合は、リストするか、空白のままにする必要があります。

4

2 に答える 2

0

次のようなものを試してください

$area=array(1=>"Nice", "Good");
$address = 'This Street, Nice Area, That Country';
preg_match(', (\w+) Area,', $address, $res);
$is_area = array_search( $res[1], $area, true) ;
if($is_area) echo $address;

説明

最初の行は、領域の配列をゼロではなくインデックス 1 で開始するように設定します (ルックアップがゼロを返さないようにします)。

preg_match 行はアドレスから領域を抽出します

配列検索行は、領域の配列内の領域を検索します

于 2013-05-25T14:40:42.527 に答える
0

あなたが求めていることは、次のように言い換えることができると思います。

"配列で見つかった文字列のインスタンスを含むすべての $address 文字列を一覧表示します$area "

その場合:

// Set up.
$address = array(
    "This Street, Nice Area, That Country",
    "This Street, Superb Area, Which Country",
    "This Street, Fine Area, A Country",
);
$area = array("Nice", "Good");

// The search.
$results = array();
foreach ($address as $haystack) {
    foreach ($area as $needle) {
        $regexPattern = "#{$needle}#";
        if (preg_match($regexPattern, $haystack)) 
            array_push($results, $haystack);
    }
}

// The results.
foreach ($results as $result) {
    echo "<p>{$result}</p>";
}
于 2013-06-18T13:04:13.220 に答える