Php 5.2 diziye id virgülle ayrılmış basit bir soru,

4 Cevap php

I've got a comma delimited string of id's coming in and I need some quick way to split them into an array. I know that I could hardcode it, but that's just gross and pointless.

Ben de tüm regex hakkında hiçbir şey bilmiyor ve ben, internet üzerinde herhangi bir yere nasıl 2 saat falan normal ifadeler master bana öğretmeye çalışıyor sadece büyük öğreticiler basit bir örnek bulamıyorum.

fgetcsv bir dosya için geçerlidir ve str_getcsv PHP 5.3 ve daha yalnızca kullanılabilir.

So, am I going to have to write this by hand or is there something out there that will do it for me? I would prefer a simple regex solution with a little explanation as to why it does what it does.

4 Cevap

Normal bölünmüş fonksiyonu ile herhangi bir sorun?

$array = split(',', 'One,Two,Three');

verecek

Array
(
  [0] => One
  [1] => Two
  [2] => Three
)

Sadece virgül üzerinde bölmek istiyorsanız:

$values = explode(",", $string);

Ayrıca virgül etrafında boşluklarla kurtulmak istiyorsanız (örneğin: dizedir 1, 3, 5)

$values = preg_split('/\s*,\s*/', $string)

Eğer (: first, "se,cond", third gibi), tırnak ile çevrili zaman dize virgül sahip olmak istiyorsanız

$regex = <<<ENDOFREGEX
            /  "  ( (?:[^"\\\\]++|\\\\.)*+ ) \"
             | '  ( (?:[^'\\\\]++|\\\\.)*+ ) \'
             | ,+
            /x
ENDOFREGEX;
$values = preg_split($regex, $string, -1, PREG_SPLIT_NO_EMPTY | PREG_SPLIT_DELIM_CAPTURE);

Basit bir düzenli ifade hile yapmak gerekir.

$a_ids = preg_split('%,%', $ids);