我想用PHP计算变量中有多少个数字和字母。如果我的代码如下:
$lot_num = strtoupper('e1,1,2,3,4,5,7,8,9,10,11,12,13,14,15,16,17,18,e18');
echo 'END UNIT: '.substr_count($lot_num, 'E').'<br />';
代码将计算我的lot_num变量中有多少个字母E,但我还要计算变量中有多少个数字。假设在计算数字时不应包括E1和E18。
我希望你能帮助我们。
答案 0 :(得分:2)
您可以随时将其转换为数组并使用循环:
$lot_num = explode(',',strtoupper('e1,1,2,3,4,5,7,8,9,10,11,12,13,14,15,16,17,18,e18');
$count = 0;
for ($i=0;$i<count($lot_num);$i++) {
if (is_int($lot_num[$i])) { //detects all numbers
$count++;
}
}
echo $count;
答案 1 :(得分:2)
试试这个:在@Override
public void onProgressChanged(SeekBar seekBar, int i, boolean b) {
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
}
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
}
上爆炸以获取可以计算的数组。
,
没有循环,没有正则表达式使它成为一个简单快速的解决方案。
答案 2 :(得分:2)
$lot_num = strtoupper('e1,1,2,3,4,5,7,8,9,10,11,12,13,14,15,16,17,18,e18');
$array = explode(',', $lot_num);
$data=array();
foreach($array as $k=>$val){
if(is_numeric($val )){
$data['number'][] = $val;
}else{
$data['string'][] = $val;
}
}
echo count($data['number']);
echo count($data['string']);
答案 3 :(得分:0)
我使用preg_match
preg_match('/\b([0-9]+)\b/', $lot_num, $matches );
比赛就像这样。
$mathes[1][1,2,3,4,5,7,8,9,10,11,12,13,14,15,16,17,18]
所以你会
$lot_num = strtoupper('e1,1,2,3,4,5,7,8,9,10,11,12,13,14,15,16,17,18,e18');
$total = 0;
if( preg_match('/\b([0-9]+)\b/', $lot_num, $matches )){
$total = count( $mathes[1] );
}
您可以在此处查看Regx如何运作https://regex101.com/r/17psAQ/1
答案 4 :(得分:0)
您可以使用is_numeric()和
if (!preg_match("/^[a-zA-Z]$/", $param)) {
// throw an Exception...
}
在循环中
答案 5 :(得分:0)
1,first u have to seperate the string and stored into array
2,then u can easily count the value of integers
<?php
$lot_num =explode(',',strtoupper('e1,1,2,3,4,5,7,8,9,10,11,12,13,14,15,16,17,18,e18'));//seperate string by ","
$arr_count=count($lot_num);
for($i=0;$i<$arr_count;$i++)
{
$get_num[]=$lot_num[$i];//saving seperated string value into array
}
$count=0;
for($j=0;$j<count($get_num);$j++)
{
if(is_numeric($get_num[$j]))//chect whether the value is integer or not
{
$count++;
}
}
echo $count;