如何使用PHP从charcter中分离数值

时间:2016-03-19 04:55:31

标签: php

我需要一个help.i需要使用PHP将数值与字符分开。我正在解释下面的代码。

 $subcatid=a1,a2,4,5

这里我有逗号分隔符的一些值我首先需要单独的数值(i.e-4,5)并将它们推入数组然后我必须将其余的数值与字符(i.e-1 from a1,2 from a2)分开并推送那些分开的值变成另一个数组。请帮助我。

4 个答案:

答案 0 :(得分:2)

试试这个

<?php
    $subcatid="a1,a2,4,5";
$subcatid_arr = explode(",",$subcatid);
$onlynum_subcatid = array_filter($subcatid_arr, 'is_numeric');
$onlynum = implode(",",$onlynum_subcatid );
echo "Only Number : ".$onlynum;
$notnum_subcatid = array_diff($subcatid_arr,$onlynum_subcatid );
$notnum = implode(",",$notnum_subcatid );
echo "\nNot Number : ".$notnum;
?>

输出是:

Only Number : 4,5
Not Number : a1,a2

点击此处:https://eval.in/539059

答案 1 :(得分:0)

使用此代码

$subcatid="a1,a2,4,5";
$strArray = explode(',',$subcatid);
$intArr = array();

foreach($strArray as $key=>$value):

 if(preg_match('/^[0-9]*$/',$value)):
  $intArr[]=$value;
 else:

  $str2Arr = str_split($value);

  foreach($str2Arr as $keyStr=>$lett):

   if(preg_match('/^[0-9]*$/',$lett)):
    $intArr[]=$lett;
   endif;

  endforeach;
 endif;

endforeach;

var_dump($intArr);

答案 2 :(得分:0)

在此代码中,您可以期待您的结果。根据需要使用$ number,$ char数组进行处理

<?php
$subcatid="a1,a2,4,5";
$subcatid_arr = explode(",",$subcatid);
for($i=0;$i<sizeof($subcatid_arr);$i++){
    if(is_numeric($subcatid_arr[$i])){
    $number[]=$subcatid_arr[$i];
}
else{
    $char[]=$subcatid_arr[$i];
}
}
print_r($number);// 4,5
print_r($char);// a1,a2
?>

答案 3 :(得分:0)

如果我理解正确,你想将所有原始数值放入一个数组中,然后只过滤残羹剩饭的数字部分并将它们放入第二个数组。

如果这是正确的,那么我相信这应该做你想要的。

<?php

$subcatid = 'a1,a2,4,5';
$subcat_array = explode(",",$subcatid);
$subNums1 = [];
$subNums2 = [];

foreach($subcat_array as $item) {
    if(is_numeric($item)) {
        // This pushes all numeric values to the first array
        $subNums1[] = $item;
    } else {
        // This strips out everything except the numbers then pushes to the second array
        $subNums2[] = preg_replace("/[^0-9]/","",$item);
    }
}

print_r($subNums1);
print_r($subNums2);

?>

这将返回:

Array (
    [0] => 4
    [1] => 5 
)

Array (
    [0] => 1
    [1] => 2 
)