価値を得るために小さな問題に直面しています。
私のデータベースの値は48,53,40で、結果として値48,40,53を取得します。両方の値を比較して出力を表示したい。どちらも同じ値です。配列のみが異なります。
誰でも私を助けることができますか????
match-against
with boolean mode
クエリを高速化するために、列にフルテキスト インデックスを配置することを忘れないでください。
そのような-
select * from temp_new where match(b) against('+48 +53 +40' in boolean mode);
それらを文字列で取得すると思います。
文字列を分解してから、次を使用できますin_array()
。
<?php
$foo = '48,53,40';
$bar = '48,40,53';
function are_equal($foo, $bar, $separator = ','){
$foo = explode($separator, $foo);
$bar = explode($separator, $bar);
foreach($foo as $number){
if(!in_array($number, $bar)){
return FALSE;
}
}
return TRUE;
}
var_dump(are_equal($foo, $bar));
もちろん、この場合、DB の再設計は健全です。
独自のものを発明する代わりに、array_diff を使用する必要があります。