Мне нужно разбить свой ввод строки на массив запятыми.
Как я могу это сделать?
Входной сигнал:
9,[email protected],8
Мне нужно разбить свой ввод строки на массив запятыми.
Как я могу это сделать?
9,[email protected],8
Попробуйте explode:
$myString = "9,[email protected],8";
$myArray = explode(',', $myString);
print_r($myArray);
Выход:
Array
(
[0] => 9
[1] => [email protected]
[2] => 8
)
$myString = "9,[email protected],8";
$myArray = explode(',', $myString);
foreach($myArray as $my_Array){
echo $my_Array.'<br>';
}
Выход
9
[email protected]
8
$string = '9,[email protected],8';
$array = explode(',', $string);
Для более сложных ситуаций вам может потребоваться использовать preg_split
.
Если эта строка поступает из файла csv, я бы использовал fgetcsv()
(или str_getcsv()
, если у вас есть PHP V5.3). Это позволит правильно разобрать приведенные значения. Если это не csv, explode()
должен быть лучшим выбором.
код:
$string = "9,[email protected],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
)