当前,我有这段代码存储所有$ _GET请求:
$array_name = array();
foreach ($_GET as $key => $value) {
$array_name[] = "'%".escape_string($value)."%'";
}
我的目标是以某种方式仅存储某些值,例如,如果我有5个不同的$ _GET请求,分别名为1,2,3,4和5。我只想在此数组中存储1-3。这怎么可能?
答案 0 :(得分:2)
$array_name = array();
foreach ($_GET as $key => $value) {
if(in_array($key, array(1, 2, 3)))
$array_name[] = "'%".escape_string($value)."%'";
}
}
这是您要寻找的吗?
答案 1 :(得分:1)
您可以获得所需键数组的交集:
foreach(array_intersect_key($_GET, array_flip([1,2,3])) as $value) {
$array_name[] = "'%".escape_string($value)."%'";
}
答案 2 :(得分:0)
其他答案的方法略有不同。 $keysToStore
是要存储的密钥的数组。
然后,foreach循环从$_GET
数组中提取这些值,而不是循环整个数组。
$keysToStore = [1, 2, 3];
$array_name = [];
foreach ( $keysToStore as $key ) {
$array_name[] = "'%" . escape_string( $_GET[$key] ) . "%'";
}
编辑:如果未在其他地方验证密钥,则可以在循环内检查isset
。
$keysToStore = [1, 2, 3];
$array_name = [];
foreach ( $keysToStore as $key ) {
if ( isset( $_GET[$key] ) ) {
$array_name[] = "'%" . escape_string( $_GET[$key] ) . "%'";
}
}
答案 3 :(得分:-1)
为此,您需要在$ key上添加检查,以确保$ key的值为1或2或3。示例代码如下:
$array_name = array();
foreach ($_GET as $key => $value) {
if($key == '1' || $key == '2' || $key == '3'){
$array_name[] = "'%".escape_string($value)."%'";
}
}
或者其他示例代码是:
$array_name = array();
foreach ($_GET as $key => $value) {
if(in_array($key, array(1, 2, 3))){
$array_name[] = "'%".escape_string($value)."%'";
}
}
这里1,2和3是$ _GET的键。输入示例为:$ _GET ['1'] ='Ghazal',$ _GET ['2'] ='Taimur',$ _GET ['3'] ='Malik',$ _GET ['4'] ='测试',$ _GET ['5'] ='城市'