在PHP中,我如何转换:
$result = abdcef;
进入一个数组:
$result[0] = a;
$result[1] = b;
$result[2] = c;
$result[3] = d;
答案 0 :(得分:68)
您需要使用str_split()。
$result = str_split('abcdef');
答案 1 :(得分:23)
不知道你是否已经意识到这一点,但你可能不需要做任何事情(取决于你想要做什么)。
$string = "abcdef";
echo $string[1];
//Outputs "b"
因此,如果您只是需要一些简单的东西,那么您可以像数组一样访问它,而不需要任何麻烦。
答案 2 :(得分:4)
$result = "abcdef";
$result = str_split($result);
str_split函数上还有一个可选参数,可以拆分成x个字符的块。
答案 3 :(得分:3)
在str_split函数的帮助下,你将会这样做。
如下所示::
<?php
$result = str_split('abcdef',1);
echo "<pre>";
print_r($result);
?>
答案 4 :(得分:2)
您可以使用str_split()函数:
$value = "abcdef";
$array = str_split($value);
如果您希望将字符串分成不同数量的数组值,您可以指定第二个参数:
$array = str_split($value, 2);
上面会将你的字符串分成两个数组。
答案 5 :(得分:1)
最好你应该去&#34; str_split()
&#34;
$string = "abcdef";
$resultArr = [];
$strLength = strlen($string);
for ($i = 0; $i < $strLength; $i++) {
$resultArr[$i] = $string[$i];
}
print_r($resultArr);
输出:
Array
(
[0] => a
[1] => b
[2] => c
[3] => d
[4] => e
[5] => f
)
答案 6 :(得分:0)
您可以使用str_split()
功能
$array = str_split($string);
foreach ($array as $p){
echo $p . "<br />";
}
答案 7 :(得分:0)
https://www.php.net/manual/en/function.str-split.php#refsect1-function.str-split-notes
<块引用>str_split() 在处理多字节编码的字符串时将拆分为字节,而不是字符。
改用 mb_str_split()
。
答案 8 :(得分:0)
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If Not IsPostBack Then
LoadGrid
End If
End Sub
Sub LoadGrid()
Using cmdSQL As New SqlCommand("SELECT ID, PicName, PicPath FROM tblPictures",
New SqlConnection(My.Settings.TEST4))
cmdSQL.Connection.Open()
GridView1.DataSource = cmdSQL.ExecuteReader
GridView1.DataBind()
End Using
End Sub
对于多字节字符是不安全的。
str_split()
需要 PHP 7.4+。
试试 mb_str_split()
的救援:
preg_split()
答案 9 :(得分:0)
如果您在过时的 PHP 版本(PHP7.4 以下的版本)中需要多字节支持,请在带有 unicode 标志的空模式上使用 preg_split()
。无需使用捕获组减慢正则表达式引擎的速度。
代码:(Demo)
var_export(
preg_split('//u', 'abcåäö', 0, PREG_SPLIT_NO_EMPTY)
// or preg_split('/.\K/us', 'abcåäö', 0, PREG_SPLIT_NO_EMPTY)
// or preg_split('/\X\K/u', 'abcåäö', 0, PREG_SPLIT_NO_EMPTY)
);
对于 7.4 或更高版本的任何 PHP 版本,只需使用专用函数 mb_str_split()
。
mb_str_split('abcåäö')
输出:
array (
0 => 'a',
1 => 'b',
2 => 'c',
3 => 'å',
4 => 'ä',
5 => 'ö',
)
作为对使用此页面上其他答案的研究人员的警告,如果您使用方括号语法通过偏移量访问字符或使用 str_split()
,则在处理多字节字符时会得到错误的结果。
对于任何进行深入研究的人,我还应该提到 the \X
(unicode version of the dot),它默认尊重换行符。 \X
与没有 .
修饰符的 s
略有不同。 Demo
var_export(preg_split('/.\K/u', $string, 0, PREG_SPLIT_NO_EMPTY)); // element [1] has two characters in it!
echo "\n---\n";
var_export(preg_split('/.\K/us', $string, 0, PREG_SPLIT_NO_EMPTY));
echo "\n---\n";
var_export(preg_split('/\X\K/u', $string, 0, PREG_SPLIT_NO_EMPTY));