PHP:如何逐个获取字符串的字符

时间:2014-05-01 10:04:25

标签: php string

$str = "8560841836";
$mystr = array($str);
$string = strlen($str);
for($i=0; $i<=$string; $i++){   echo $string[$i]."\n";  }

此代码在一行中打印此字符串,但我希望它在一行中打印出来,而其他字符串也是如此......

6 个答案:

答案 0 :(得分:4)

来自the PHP documentation

  

可以通过使用方形数组括号在字符串后面指定所需字符的从零开始的偏移量来访问和修改字符串中的字符,如$str[42]中所示。为此,可以将字符串视为字符数组。当您想要提取或替换多个字符时,可以使用函数substr()和substr_replace()。

     

注意:为了同样的目的,也可以使用大括号访问字符串,如$str{42}中所示。

     

警告   在内部,PHP字符串是字节数组。因此,使用数组括号访问或修改字符串不是多字节安全的,只能使用单字节编码的字符串来完成,例如ISO-8859-1。

实施例:     

// Get the first character of a string
$str = 'This is a test.';
$first = $str[0]; // 't'

// Get the third character of a string
$third = $str[2]; // 'i'

// Get the last character of a string.
$str = 'This is still a test.';
$last = $str[strlen($str)-1];  // '.'

// Modify the last character of a string
$str = 'Look at the sea';
$str[strlen($str)-1] = 'e'; // 'Look at the see'

所以在你的情况下,这很容易:     

$str = '8560841836';
$len = strlen($str);

for($i = 0; $i < $len; ++$i) // < and not <=, cause the index starts at 0!
    echo $str[$i]."\n";

答案 1 :(得分:3)

有功能 str_split(&#39;字符串&#39;)。它回来了 array(6) { [0]=> string(1) "s" [1]=> string(1) "t" [2]=> string(1) "r" [3]=> string(1) "i" [4]=> string(1) "n" [5]=> string(1) "g" }

您可以传递第二个参数以获得最大块长度。

示例: str_split(&#39;字符串&#39;,2)返回: array(3) { [0]=> string(2) "st" [1]=> string(2) "ri" [2]=> string(2) "ng" }

http://php.net/manual/en/function.str-split.php

答案 2 :(得分:1)

您将字符串与字符串长度混淆。

此外,您可以使用$string{$i}代替$string[$i]

最后,在循环结束时($i<$lenght而不是$i<=$lenght)充满活力

这有效:

<?php
$str = "8560841836";
$lenght = strlen($str);
for($i=0; $i<$lenght; $i++){   
    echo $str[$i]."\n";
}
?>

答案 3 :(得分:0)

尝试使用此代码

private ApplicationDbContext db = new ApplicationDbContext()
public ActionResult Index()
{    
    var c2 = db.CCDetails.ToList();   // return null   
    return View(c2); 
}

答案 4 :(得分:0)

<?php
    $str = "Split Me !";
    $start = 0;
    for ($x = $start; $x < strlen($str); $x++) {
        echo $str[$x];
    }
?>

答案 5 :(得分:-1)

使用explode("", $data) (see this reference)爆炸字符串并迭代结果。

$str = "8560841836";
$mystr = explode($str);
foreach( $mystr as $string){ 
    echo $string."\n"; 
}