【发布时间】:2022-01-06 00:55:45
【问题描述】:
我有以下数组
[
["client_code","contains","12"],
"and",
[
["trade_name","=","KeyWholesaler"],
"or",
["trade_name","=","Cash&Carry"]
],
"and",
[
"!",
["state","=","B-BigCantina"],
["state","=","B-BigCantina2"]
],
"and",
["client_name","contains","M"]
]
我做了一个函数,将上面的数组echo递归到MySql where 查询。我知道这很混乱,但我能做的就是让它发挥作用。
function testing($array) {
if(is_array($array) && count($array) == count($array, COUNT_RECURSIVE)) {
$is_not = $_SESSION["NOT"];
$and = $_SESSION["NOT"] ? " AND" : "";
echo "`$array[0]` $is_not$array[1] '$array[2]' $and";
echo "";
} else if(is_array($array)) {
echo "(";
foreach ($array as $key => $value) {
testing($value);
}
echo ")";
$_SESSION["NOT"] = "";
} else if($array == "!") {
$_SESSION["NOT"] = "!";
} else {
echo $array;
echo "";
}
}
使用给定数组的以下函数的输出为
(`client_code` contains '12' and(`trade_name` = 'KeyWholesaler' or`trade_name` = 'Cash&Carry' )and(`state` != 'B-BigCantina' AND`state` != 'B-BigCantina2' AND)and`client_code` contains '21' )
现在这个函数只是回显下面的输出,但我想把它变成一个变量。
抱歉所有格式和糟糕的英语。 :)
【问题讨论】:
-
数组格式是否在你的控制范围内?这是一种令人困惑/不精确/不是最好的格式。 here’s an example 的格式更容易解析。
-
其实是来自一个叫DevExtreme DataGrid的插件