如何在使用php获取带数字的字母时删除值
我需要一个帮助。我需要删除那些也有一些字母的ID,并使用PHP将其余的插入数组。我在下面解释我的代码如何在使用php获取带数字的字母时删除值,php,arrays,Php,Arrays,我需要一个帮助。我需要删除那些也有一些字母的ID,并使用PHP将其余的插入数组。我在下面解释我的代码 http://oditek.in/spesh/mobileapi/categoryproduct.php?item=1&acn=5&subcat_id=a15,15,16 在subcat\u id中,我有一个ida15我需要删除这种类型的id,当文件出现时,其余的应该插入数组。请帮助我。如果我理解正确,你想取字符串a15,15,16,转换为数组,然后删除非数值吗 如果是这样的话
http://oditek.in/spesh/mobileapi/categoryproduct.php?item=1&acn=5&subcat_id=a15,15,16
在
subcat\u id
中,我有一个ida15
我需要删除这种类型的id,当文件出现时,其余的应该插入数组。请帮助我。如果我理解正确,你想取字符串a15,15,16
,转换为数组,然后删除非数值吗
如果是这样的话,很简单:
$subcatArray = explode(',', $_GET['subcat_id']);
$subcatArrayNumeric = array_filter($subcat, 'is_numeric');
现在,$subtarraynumeric
将是一个仅包含“15”和“16”的数组
工作示例:如果我理解正确,是否希望获取字符串
a15,15,16
,转换为数组,并删除非数值
如果是这样的话,很简单:
$subcatArray = explode(',', $_GET['subcat_id']);
$subcatArrayNumeric = array_filter($subcat, 'is_numeric');
现在,$subtarraynumeric
将是一个仅包含“15”和“16”的数组
工作示例:尝试获取数字ID
$subcatid = explode(",",$_GET['subcat_id']);
$arrId = [];
foreach($subcatid AS $id) {
$arrId[] = preg_replace("/[^0-9]/", "", $id);
}
var_dump($arrId); //$arrId contains all the numeric IDs only
尝试获取数字ID
$subcatid = explode(",",$_GET['subcat_id']);
$arrId = [];
foreach($subcatid AS $id) {
$arrId[] = preg_replace("/[^0-9]/", "", $id);
}
var_dump($arrId); //$arrId contains all the numeric IDs only
如果您没有从请求中获取URL,则必须首先对其进行解析
<?php
$url = "http://oditek.in/spesh/mobileapi/categoryproduct.php?item=1&acn=5&subcat_id=a15,15,16";
$query_str = parse_url($url, PHP_URL_QUERY);
parse_str($query_str, $query_params);
$ids = explode(",",$query_params['subcat_id']);
print_r($ids);
foreach( $ids as $index => $id){
if( is_numeric($id) === false ){
unset($ids[$index]);
}
}
print_r($ids);
?>
我的示例中的for循环可以用数组过滤器($ids,'is_numeric')代替,就像jszobody answer一样。如果您没有从请求中获取URL,则必须首先解析它
<?php
$url = "http://oditek.in/spesh/mobileapi/categoryproduct.php?item=1&acn=5&subcat_id=a15,15,16";
$query_str = parse_url($url, PHP_URL_QUERY);
parse_str($query_str, $query_params);
$ids = explode(",",$query_params['subcat_id']);
print_r($ids);
foreach( $ids as $index => $id){
if( is_numeric($id) === false ){
unset($ids[$index]);
}
}
print_r($ids);
?>
我的示例中的for循环可以用数组过滤器($ids,'is_numeric')代替,就像jszobody答案中的那样。尝试以下方法:
$url = 'http://oditek.in/spesh/mobileapi/categoryproduct.php?item=1&acn=5&subcat_id=a15,15,16';
$parts = parse_url($url);
$q = array();
parse_str($parts['query'], $q);
$subcatIds = explode(',', $q['subcat_id']);
$subcatIds = array_map(function($element){ return filter_var($element, FILTER_SANITIZE_NUMBER_INT);}, $subcatIds);
print_r($subcatIds);
结果是:
Array ( [0] => 15 [1] => 15 [2] => 16 )
工作示例:
因此,基本上,如果在$\u GET
中有subcat\u id
,则只需要两行:
$subcatIds = explode(',', $_GET['subcat_id']);
$subcatIds = array_map(function($element){ return filter_var($element, FILTER_SANITIZE_NUMBER_INT);}, $subcatIds);
试试这个:
$url = 'http://oditek.in/spesh/mobileapi/categoryproduct.php?item=1&acn=5&subcat_id=a15,15,16';
$parts = parse_url($url);
$q = array();
parse_str($parts['query'], $q);
$subcatIds = explode(',', $q['subcat_id']);
$subcatIds = array_map(function($element){ return filter_var($element, FILTER_SANITIZE_NUMBER_INT);}, $subcatIds);
print_r($subcatIds);
结果是:
Array ( [0] => 15 [1] => 15 [2] => 16 )
工作示例:
因此,基本上,如果在$\u GET
中有subcat\u id
,则只需要两行:
$subcatIds = explode(',', $_GET['subcat_id']);
$subcatIds = array_map(function($element){ return filter_var($element, FILTER_SANITIZE_NUMBER_INT);}, $subcatIds);