【问题标题】:Is a string in PHP a character array? [closed]PHP中的字符串是字符数组吗? [关闭]
【发布时间】:2012-11-08 12:31:43
【问题描述】:

和 C 一样,我可以使用字符串作为数组吗?

例如:

$a = "abcd";
for ($b = 0; $b <= 3; $b++) {
  echo $a[$b];
}

PHP 中的字符串是数组,还是像 C 中那样基于数组?

【问题讨论】:

  • 为什么不试试呢?
  • 它的工作,但我需要知道字符串是否是数组?
  • 不,不是。这是一个字符串。我只是可以(部分)索引为一个数组。更准确地了解您需要了解的内容。为什么它很重要?
  • 请注意,字符串提供类似于数组$string[123] 的访问语法,但也提供$string{123} 来消除歧义。

标签: php c arrays string


【解决方案1】:

其实是的,但是你必须使用另一种语法:

$a = "abcd";
for ($b = 0; $b <= 3; $b++) {
  echo $a{$b};
}

【讨论】:

  • echo $a[$b]; 也可以;)
【解决方案2】:

您可以通过检查字符串长度来遍历整个字符串,并使用 substr() 函数获取每个字母:

$a = "abcd";
for($b = 0; $b <= strlen($a); $b++){
    echo substr($a, $b, 1).'<br>';
}

希望这会有所帮助!

【讨论】:

    【解决方案3】:

    您应该使用str_split($string) 将字符串转换为数组

    例如:

    var_dump(str_split("abc"));
    

    会翻译成

    array(3) {
      [0]=> string(1) "a"
      [1]=> string(1) "b"
      [2]=> string(1) "c"
    }
    

    【讨论】:

      【解决方案4】:
      <?php 
        $str = "Lorem ipsum";
        if (is_array($str)) {
          echo "$str is array";
        }
        else {
          echo "$str is not array";
        }
      ?>
      

      结果:

      Lorem ipsum 不是数组

      所以....

      【讨论】:

      • 所以我的意思是它在 C 中的工作方式我知道它像数组一样保存在内存中
      • 数组是类似类型的元素的集合,这些元素由一个通用名称引用。每个元素都通过其值访问。第一个元素的索引为 0,最后一个元素的索引比数组的大小小 1。数组声明:- data_type array_name[size];字符串是字符的集合。所以称为字符数组。每个字符串都以空字符('')结尾
      • 如此实际,是的,字符串像数组一样位于内存中,但它不是php数组,它是php数组的孤立案例!
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-02
      相关资源
      最近更新 更多