Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在使用php获取带数字的字母时删除值_Php_Arrays - Fatal编程技术网

如何在使用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,转换为数组,然后删除非数值吗 如果是这样的话

我需要一个帮助。我需要删除那些也有一些字母的ID,并使用PHP将其余的插入数组。我在下面解释我的代码

http://oditek.in/spesh/mobileapi/categoryproduct.php?item=1&acn=5&subcat_id=a15,15,16

subcat\u id
中,我有一个id
a15
我需要删除这种类型的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);