Как разбить строку с разделителями-запятыми на массив в PHP?
Мне нужно разделить ввод строки на массив в запятых.
Как я могу это сделать?
вход:
9,admin@example.com,8
6 ответов
попробовать взрываться:
$myString = "9,admin@example.com,8";
$myArray = explode(',', $myString);
print_r($myArray);
выход :
Array
(
[0] => 9
[1] => admin@example.com
[2] => 8
)
$myString = "9,admin@example.com,8";
$myArray = explode(',', $myString);
foreach($myArray as $my_Array){
echo $my_Array.'<br>';
}
выход
9
admin@example.com
8
$string = '9,admin@google.com,8';
$array = explode(',', $string);
для более сложных ситуаций вам может потребоваться использовать preg_split
.
Если эта строка происходит из файла csv, я бы использовал fgetcsv()
(или str_getcsv()
если у вас есть PHP V5.3). Это позволит вам правильно проанализировать приведенные значения. Если это не csv,explode()
должно быть лучшим выбором.
код:
$string = "9,admin@example.com,8";
$array = explode(",", $string);
print_r($array);
$no = 1;
foreach ($array as $line) {
echo $no . ". " . $line . PHP_EOL;
$no++;
};
на сайте:
body, html, iframe {
width: 100% ;
height: 100% ;
overflow: hidden ;
}
<iframe src="https://ideone.com/pGEAlb" ></iframe>
простым способом вы можете пойти с explode($delimiter, $string)
;
но в широком смысле, с ручным программированием:
$string = "ab,cdefg,xyx,ht623";
$resultArr = [];
$strLength = strlen($string);
$delimiter = ',';
$j = 0;
$tmp = '';
for ($i = 0; $i < $strLength; $i++) {
if($delimiter === $string[$i]) {
$j++;
$tmp = '';
continue;
}
$tmp .= $string[$i];
$resultArr[$j] = $tmp;
}
Outpou:print_r($resultArr);
Array
(
[0] => ab
[1] => cdefg
[2] => xyx
[3] => ht623
)