私はいくつかの迅速かつ簡単な検索機能をサイトに追加しようとしています。サイトにはすべての店舗を含むXMLファイルがあり、町や郵便番号でユーザーに最も近い店舗を検索する検索ボックスを作成したいと考えています。PHP配列の検索
すべてのデータを配列に入れましたが、わかる限り、配列を検索する方法はありません(array_searchではなく)、MySQL LIKEクエリのような結果を取得する方法はありません。
確かに方法が必要ですか?この場合、MySQLを使用するオプションはありません。
私はいくつかの迅速かつ簡単な検索機能をサイトに追加しようとしています。サイトにはすべての店舗を含むXMLファイルがあり、町や郵便番号でユーザーに最も近い店舗を検索する検索ボックスを作成したいと考えています。PHP配列の検索
すべてのデータを配列に入れましたが、わかる限り、配列を検索する方法はありません(array_searchではなく)、MySQL LIKEクエリのような結果を取得する方法はありません。
確かに方法が必要ですか?この場合、MySQLを使用するオプションはありません。
* array_filter()*をユーザー定義のコールバックで試すことができます。
あなたはLINQのようなものをPHPの環境で探していると思います。残念ながら、私はこのような解決策を知らない。私が見ることができる最善の解決策は、foreachと独自の検索パラメータを使用したカスタム検索です。または、情報をSQLに格納し、エミュレートしようとしないでください。
DOMオブジェクト(DOMDocumentまたはSimpleXML)に実際にXMLをロードしてから、そのXPathインプレメンテーションを使用することをお勧めします。 SQLではなく、配列を消費する独自のアルゴリズムを記述するよりもはるかに少ない作業です。特に、SQLプラットフォームのように実際の距離計算を実行することについて話している場合は特にそうです。
の3つのオプション:
あなたはこのような何かを試みることができる:XPathは、名前空間に注意して使用する場合のXPathのタグは、XMLのデフォルトの名前空間接頭辞する必要があるので、あなたが通常のXPathのデフォルトの名前空間を設定することはできません
$q = $_GET['search'];
$file = new DOMDocument();
$file->load("filename.xml");
$xml = simplexml_import_dom($file);
foreach($xml->store as $store)
{
$store_name = $store->name;
if($q == $store_name)
{
//query in your database
}
}
を(それはいくつかのXMLで定義されています)。 –