Rumah > Soal Jawab > teks badan
Menukar tatasusunan berbilang dimensi kepada pernyataan sql, yang satu dimensi telah dilaksanakan, tetapi saya tidak tahu bagaimana untuk melakukan yang dua dimensi Sila beritahu saya, saya mempunyai banyak jika sekarang, satu jika untuk satu dimensi dan satu jika untuk pelbagai dimensi Kecekapan program adalah sangat rendah. . .
<?php
function arrayToSqlStatement( $arrayData = [] )
{
$_temp_string = '';
foreach ( $arrayData as $k => $v ) {
if ( is_array( $v ) && !empty( $v ) ) {
$sqlCondition = $v[0];
$sqlValue = $v[1];
} else {
$sqlCondition = '=';
$sqlValue = trim( $v );
}
//根据符号组合值的样式
if ( $sqlCondition == 'LIKE' ) {
$_temp_string .= ' AND ' . $k . ' LIKE "%' . $sqlValue . '%" ';
} elseif ( $sqlCondition == 'IN' ) {
$_temp_string .= ' AND ' . $k . ' IN(' . $sqlValue . ')';
} elseif ( $sqlCondition == 'BETWEEN' ) {
$_between_value = explode( '|', $sqlValue );
$_temp_string .= ' AND ' . $k . '>="' . $_between_value[0] . '" AND ' . $k . '<="' . $_between_value[1] . '" ';
} else {
$_temp_string .= ' AND ' . $k . $sqlCondition . ' "' . $sqlValue . '" ';
}
}
return $_temp_string;
}
//第二种情况,出问题了。
$a=[
[
'bbb'=>'222',
'ccc'=>'333',
'ddd'=>['>=','444'],
'eee'=>['BETWEEN','555|666']
],
[
'bbb'=>'222',
'ccc'=>'333',
'ddd'=>['>=','444'],
'eee'=>['BETWEEN','555|666']
]
];
//第一种情况,已经实现了
$b=[
'bbb'=>'222',
'ccc'=>'333',
'ddd'=>['>=','444'],
'eee'=>['BETWEEN','555|666']
];
print_r(arrayToSqlStatement($a));
?>
曾经蜡笔没有小新2017-06-14 10:52:08
Penyoal ingin menyedari bahawa tatasusunan dua dimensi digabungkan menjadi pernyataan sql. Untuk menukar idea, parameter yang diluluskan disatukan ke dalam tatasusunan berbilang dimensi.
<?php
fungsi arrayToSqlStatement( $arrayData = [] )
{
$_temp_string = '';
foreach ($arrayData as $parameterArray) {
foreach ( $parameterArray as $parameter ) {
if ( is_array( $parameter ) && !empty( $parameter ) ) {
$sqlCondition = $parameter[0];
$sqlValue = $parameter[1];
} else {
$sqlCondition = '=';
$sqlValue = trim( $parameter );
}
//根据符号组合值的样式
if ( $sqlCondition == 'LIKE' ) {
$_temp_string .= ' AND ' . $k . ' LIKE "%' . $sqlValue . '%" ';
} elseif ( $sqlCondition == 'IN' ) {
$_temp_string .= ' AND ' . $k . ' IN(' . $sqlValue . ')';
} elseif ( $sqlCondition == 'BETWEEN' ) {
$_between_value = explode( '|', $sqlValue );
$_temp_string .= ' AND ' . $k . '>="' . $_between_value[0] . '" AND ' . $k . '<="' . $_between_value[1] . '" ';
} else {
$_temp_string .= ' AND ' . $k . $sqlCondition . ' "' . $sqlValue . '" ';
}
}
}
return $_temp_string;
}
//第二种情况,出问题了。
$a=[
[
'bbb'=>'222',
'ccc'=>'333',
'ddd'=>['>=','444'],
'eee'=>['BETWEEN','555|666']
],
[
'bbb'=>'222',
'ccc'=>'333',
'ddd'=>['>=','444'],
'eee'=>['BETWEEN','555|666']
]
];
//第一种情况,已经实现了
$b=
[
[
'bbb'=>'222',
'ccc'=>'333',
'ddd'=>['>=','444'],
'eee'=>['BETWEEN','555|666']
]
];
print_r(arrayToSqlStatement($b));
?>
给我你的怀抱2017-06-14 10:52:08
Fungsi itu sendiri terus memanggil dirinya sendiri. . Kategori yang sangat tidak terhingga. Main walau bagaimanapun anda mahu