Bir dize ilk sayısını nasıl kaldırılır?

7 Cevap

Ben bir dize ilk sayı nasıl kaldırabilirim? Ben ',' (virgül) ile ayrılmış, bu 48 numara olsaydı ki:

8,5,8,10,15,20,27,25,60,31,25,39,25,31,26,28,80,28,27,31,27,29,26,35,8,5,8,10,15,20,27,25,60,31,25,39,25,31,26,28,80,28,27,31,27,29,26,35

Nasıl ben "8," dizesinden kaldırmak istiyorsunuz? Teşekkürler.

7 Cevap

substr(strchr("2512,12512,1245234,23452345", ","), 1)

aslında. Ben çünkü bunu düşünmek en verimli şekilde diziye falan içine dize dönüştürme değil. Bu, sadece dize kesti s.

$text = "8,5,8,10,15,20,27,25,60,31,2";

Önce sen patlayabilir:

$array = explode(',', $text);

Sonra ilk eleman çıkarmak:

array_shift($array);

Sonunda sona katılmak:

echo implode(',' $array);

Aşağıdaki en az 2 numara (ve hızlı) olduğunu varsayar:

list($first, $rest) = explode(',', $string, 2);

Bu da, tek sayılar üzerinde çalışır (ama regex kullanır) olacaktır:

preg_replace('/^.*?,/', '', $string);

Tüm farklı bir çözüm sağlayan, böylece edilir burada başka basit bir çözüm

$mystring = "8,5,8,10,15,20,27,25,60,31,25,39,25,31";
$pos = strpos($mystring, ",");
$pos1 = $pos+1; // add the comma position by 1
echo substr($mystring, $pos1);

Kaldırır all characters kadar ve ilk virgül dahil:

ltrim(strstr($numbers, ','), ',');

Kaldırır all digits kadar ve ilk virgül dahil:

ltrim(ltrim($numbers, '01234567890'), ',');

all digits kadar ve olmayan ilk basamağını içeren kaldırır biraz daha hızlı versiyonu

substr($numbers, strspn($numbers, '1234567890')+1);

Bu '8 ', 9'dan büyük ise çalışıyor! Gibi

$numbers = substr($numbers, strpos($text,",") + 1);

i bu daha verimli dont gelmek bulacaksınız düşünüyorum

$mystring = "8,5,8,10,15,20,27,25,60,31,25,39,25,31";
$mystringbits = explode($mystring, ",");
for($i = $mystringbits.length-1; $i>0; i--)
{
   if($i == 0)
     array_pop($mystringbits);
}
$mystring = "";
for($j = 0; $j < $mystringbits.length; $j++)
{
   $mystring .= $mystringbits[$j] . ",";
}
echo $mystring;