他の可能性に加えpreg_match()
て、これを達成するために使用できます。あなたの質問を正しく理解できたかどうかはわかりませんが、役立つ例を用意しました。元の配列を次の構造を持つ配列に変換します。
array(
array('key', 'operator', 'value'),
array('key', 'operator', 'value'),
array('key', 'operator', 'value'),
// ...
)
コードは次のとおりです。
$arr = array('username='=> 'Alex','id >'=>'4');
$result = extractValues($arr);
var_dump($result);
function extractValues($arr) {
$pattern = '/([A-Za-z_]+[A-Za-z_0-9]?)[ ]?(!=|=|<=|<|>=|';
$pattern .= '>|like|clike|slike|not|is|in|between|and|or)/';
$result = array();
foreach($arr as $key => $value) {
preg_match($pattern, $key, $matches);
$result []= array($matches[1], $matches[2], $value);
}
return $result;
}
出力は次のとおりです。
array(2) {
[0] =>
array(3) {
[0] =>
string(8) "username"
[1] =>
string(1) "="
[2] =>
string(4) "Alex"
}
[1] =>
array(3) {
[0] =>
string(2) "id"
[1] =>
string(1) ">"
[2] =>
string(1) "4"
}
}