1

配列を正しく作成し、次の配列項目を持っています。

$array[2] = "Automotive Repairs and Servicing";

$array で Automotive Repairs and Servicing を検索しようとすると、false が返されます。

array_search('Automotive Repairs and Servicing', $array);

検索文字列内にスペースがあるため、false が返されることがわかりました。つまり、Automotive(space)Repairs(space)and(space)Servicing.

検索でキーを正常に返す方法を知っている人はいますか? スペースを %20、\n、および次のように試しました。

array_search('Automotive%20Repairs%20and%20Servicing', $array);
array_search('Automotive\nRepairs\nand\nServicing', $array);
array_search('Automotive Repairs and Servicing', $array);

私は引き続きこの問題を解決しようと試み、解決したら回答を投稿します。

…以下、ご回答ありがとうございます。私はあなたのコードを試してみましたが、私にとってもうまくいきました。

私の実際の配列は、実際にはmysqlクエリを使用してデータベースからのデータで構成され、結果を配列に直接入れています。そのため、問題が今どこにあるのかよくわかりません。

...

私の答え:

この問題に対応して助けてくれてありがとう。

私は自分の問題を発見しました...そして私は非常に恥ずかしいです.

データベースの「Automotive Repairs and Servicing」という文字列の末尾に、見たことのないスペースがあったことがわかりました。私は以前にこれを打ったことがあります.私のmysqlデータベースは時々このように私の頭をいじるのが好きです.

そのため、mysql の結果を取得して配列に貼り付けてから、これと同様の問題を引き起こす他の人のために、mysql がデータ内のスペース (人間の目には見えない) で「いたずら」していないことを確認してください。

タバコを吸いに出かけます。

4

1 に答える 1

2

私は本当にそれで問題を見ていません...

しかし、これがまさに私が試したことです:

<?php
$array[0] = "noo";
$array[1] = "DONE";
$array[2] = "Automotive Repairs and Servicing";

$index = array_search('Automotive Repairs and Servicing', $array);

echo "Index = $index";

?>

そして、ここに出力があります:

Index = 2
于 2012-05-02T00:56:02.710 に答える