• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:2つの検索フォームのリーベンシュタイン距離を求める)

2つの検索フォームのリーベンシュタイン距離を求める

このQ&Aのポイント
  • 2つの検索フォームのリーベンシュタイン距離を求めようとして頓挫して困っています。
  • フォームに入力した文字列のリーベンシュタイン距離を計算し、マッチ率を表示するプログラムを作成していますが、うまく動作しません。
  • 現在、フォームの入力値を受け取る処理が正しく行われていないため、結果が正しく表示されていません。どのように書き換えれば正常に動作するか、ご教授いただけませんか?

質問者が選んだベストアンサー

  • ベストアンサー
  • shimix
  • ベストアンサー率54% (865/1590)
回答No.1

まず・・ >$text = array('$a', '$b'); 可変変数を使うのでもない限り、'$a'という文字列になんらかの意味があるとも思えません。単引用符と二重引用符を使い分けていらっしゃいますが、変数をparseさせるなら単引用符ではダメです(というか、そもそも括る意味がわかりません)。素直に $text = array($a, $b); ではないのですかね? また foreach ($text as $row) ですから、$row[0]と$row[1]は最初は$aの一文字目と二文字目(2回目は$bの一文字目と二文字目)になります。 foreach ($text as $row) { print $row[0] . "<br />"; print $row[1] . "<br /><hr />"; } などとしてみればわかると思います。これは期待した動作ですか? >header('Content-Type: text/html; charset=utf-8'); すでにhtmlソース(の一部)を返しているので、このheaderはWarningになると思いますが、もし本当にutf-8で書いているのであれば >echo mb_convert_encoding($buf, 'SJIS', 'UTF-8'); 何のためにsjisに変換しているのでしょうか。

walsch
質問者

お礼

回答ありがとうございます。 ご指摘を参考に、素直にarray($a, $b);し、foreach ($text as $row) の[0][1]の指定をやめ、utf-8で書き直しました。 sjisに変換していたのは、日本語文字部分が文字化けするための対策だったのですが、改めてutf-8で書きなおして解決しました。 御助言のおかげでここ数日間、ヒントにいろいろ調べながら勉強することが出来ました。 ありがとうございます。

関連するQ&A