Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   PHP, PERL, MySQL, JavaScript (https://forum.antichat.xyz/forumdisplay.php?f=37)
-   -   двойное разделение (https://forum.antichat.xyz/showthread.php?t=203243)

.::BARS::. 11.05.2010 16:30

двойное разделение
 
Привет... такая проблема... есть выражение.. к примеру 32+32-42
я сделал разделение только по +, а нужно еще и -

вот код

PHP код:

<?
echo '<form method="post" action="?a=ok">
Выражение: <br><input name="v" size="150"/><br>
<input value="разбить" type="submit" /></form>'
;
if (
$_GET['a']=='ok'){
    
$v=$_POST['v'];
    
$c=explode('+',$v);
    
$count=count($c);
    echo 
'<hr>Элементов: <b>'.$count.'</b><br>';
    for (
$i=0$i<count($c); $i++) {
        
$n=$i+1;
        echo 
'Элемент <b>'.$n.'</b>: <b>'$c[$i] .'</b><br>';
    }
}
?>


Kaimi 11.05.2010 16:32

Воспользуйся preg_split

.::BARS::. 11.05.2010 16:34

причем элемент с - должен остальтя с -

.::BARS::. 11.05.2010 16:37

дай пример

Pashkela 11.05.2010 17:24

PHP код:

<pre>
<? 
echo '<form method="post" action="?a=ok"> 
Выражение: <br><input name="v" size="150"/><br>
<input value="разбить" type="submit" /></form>'

if (
$_GET['a']=='ok'){ 
    
$znak=array("+","-","*","/");
    
$d=str_split($_POST['v'].$znak[0]);
    
$i=0;
    foreach (
$d as $value){
       if(!
in_array($value,$znak)) {   
          
$temp.=$value;
       } else {
          
$i++;
          echo 
"Элемент $i$temp \n";
          
$temp=""
       }
    }
}
?>
</pre>

^_^

.::BARS::. 11.05.2010 17:34

PHP код:

<?
echo '<form method="post" action="?a=ok">
Выражение: <br><input name="v" size="150"/><br>
<input value="разбить" type="submit" /></form>'
;
if (
$_GET['a']=='ok'){
    
$v=$_POST['v'];
    
$c=preg_split("/[\s]*[-+][\s]*/"$v);;
    
print_r($c);
    
$count=count($c);
    echo 
'<hr>Элементов: <b>'.$count.'</b><br>';
    for (
$i=0$i<count($c); $i++) {
        
$n=$i+1;
        echo 
'Элемент <b>'.$n.'</b>: <b>'$c[$i] .'</b><br>';
    }
}
?>

но как - выхватить!?

krypt3r 12.05.2010 07:23

PHP код:

preg_match_all ('/[+-]?\d+/'$str$m);
$m[0] = array_map ('intval'$m[0]); 



Время: 08:02