如何在PHP中将字符串转换为数组

48

如何将 PHP 中的字符串转换为数组?

$str="this is string";

应该像这样

  arr[0]=this
  arr[1]=is
  arr[2]=string 
str_split($str, 3); 函数将字符串以三个字符为一组拆分,但我需要将字符串中空格后面的部分转换为数组。

2
阅读手册有助于理解,特别是要遵循每篇文章末尾链接的相关函数。请点击这里查看手册。 - deceze
10个回答

110
使用explode函数
$array = explode(' ', $string);

第一个参数是分隔符。

9

6
<?php

$str = "Hello Friend";

$arr1 = str_split($str);
$arr2 = str_split($str, 3);

print_r($arr1);
print_r($arr2);

?>

3
这个答案缺少教育性的解释。 - mickmackusa

5

尝试像这样使用json_decode

<?php

   $var = '["SupplierInvoiceReconciliation"]';
   $var = json_decode($var, TRUE);
   print_r($var);
?>

OP的输入数据不是json格式的。 - mickmackusa
另外 -- 在 PHP 8 中,返回值为 Array ( [0] => SupplierInvoiceReconciliation ) - Zak

4

看一下explode函数。

<?php
// Example 1
$pizza  = "piece1 piece2 piece3 piece4 piece5 piece6";
$pieces = explode(" ", $pizza);
echo $pieces[0]; // piece1
echo $pieces[1]; // piece2
?>

3

PHP中有一个专门为此目的设计的函数,str_word_count()。默认情况下它不考虑数字和多字节字符,但是它们可以通过在charlist参数中添加附加字符列表来考虑。charlist 参数还接受一系列字符,就像示例中的那样。

相比于 explode() 函数,这个函数的一个好处是避免了标点符号、空格和换行符。

$str = "1st example:
        Alte Füchse gehen schwer in die Falle.    ";

print_r( str_word_count( $str, 1, '1..9ü' ) );

/* output:
Array
(
    [0] => 1st
    [1] => example
    [2] => Alte
    [3] => Füchse
    [4] => gehen
    [5] => schwer
    [6] => in
    [7] => die
    [8] => Falle
)
*/

2

explode()可能是你正在寻找的函数

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

1

explode — 将字符串分割成数组

语法:

array explode ( string $delimiter , string $string [, int $limit = PHP_INT_MAX ] )
  • $delimiter:按照此分隔符拆分字符串
  • $string:您要拆分的字符串

示例:

// Example 1
$pizza  = "piece1 piece2 piece3 piece4 piece5 piece6";
$pieces = explode(" ", $pizza);
echo $pieces[0]; // piece1
echo $pieces[1]; // piece2

在你的例子中:

$str = "this is string"; 
$array = explode(' ', $str);

0

在这里,使用explode()函数将字符串按照某个字符串分割成数组

点击此处了解有关explode()的更多信息

$str = "this is string";
$delimiter = ' ';  // use any string / character by which, need to split string into Array
$resultArr = explode($delimiter, $str);  
var_dump($resultArr);

输出:

Array
(
    [0] => "this",
    [1] => "is",
    [2] => "string "
)

这与要求相同:

  arr[0]="this";
  arr[1]="is";
  arr[2]="string";

这个非常晚的答案对这个页面没有任何价值。如果你想提供一个指向 PHP 手册的链接,你可以编辑已接受的答案或在问题下留下评论。 - mickmackusa

0

即使不使用explode和implode函数,也可以实现这一点。以下是示例:

输入:

这是我的世界

代码:

$part1 = "This is my world"; 
$part2 = str_word_count($part1, 1);

输出:

数组( [0] => '这', [1] => '是', [2] => '我的', [3] => '世界');


这只是对@Danijel多年前回答的重复。 - mickmackusa

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接