【问题标题】:How to get all the indexes of a string without converting that string into an array in PHP?如何在不将该字符串转换为 PHP 中的数组的情况下获取字符串的所有索引?
【发布时间】:2018-03-15 10:26:43
【问题描述】:

我正在使用 PHP 7.2.2

我想在不将该字符串转换为数组的情况下获取字符串的所有索引。

考虑下面的代码 sn-p :

<?php
$rootbeer = 'A & W';
$rootbeer[7] = 'J';
?>

我想获取变量$rootbeer中包含的字符串的所有索引。

我想检查变量$roobeer中重新发送的原始字符串是否在为变量$rootbeer分配超出范围的偏移量后填充了空格。

但是这样做的时候,我不想把字符串转换成数组,然后得到数组元素的所有索引。

【问题讨论】:

  • 请改写或解释您的以下公式:“字符串的索引”、“将超出范围的偏移量分配给变量后”、“ 我不想将字符串转换为数组然后获取所有索引”。这些句子/短语对我来说毫无意义。
  • @PhilippMaurer :由于原始字符串的索引仅从 0 到 4,因此我分配了一个新索引 7,该索引超出了当前字符串的范围。我想在不将此字符串转换为数组的情况下获取此字符串的所有键或索引。
  • range(0, strlen($rootbeer) - 1); ?
  • @SerialKisser 所以基本上你想创建字符串"A &amp; W J" 并找出空格在哪里? (获取空白/非空白的索引)

标签: php arrays string key


【解决方案1】:

我不太清楚“我想获取所有索引”是什么意思。

但我猜你的意思是:

$rootbeer = 'A & W';
$rootbeer[7] = 'J';
$length = strlen($rootbeer);

for ($i = 0; $i < $length; $i++) {
 echo "Index: ".$i." Contains: ";
var_dump($rootbeer[$i]);
echo "<hr>";
}

将输出: 索引:0 包含:字符串(1)“A”

索引:1 包含:字符串(1)“”

索引:2 包含:字符串(1)“&”

索引:3 包含:字符串(1)“”

索引:4 包含:字符串(1)“W”

索引:5 包含:字符串(1)“”

索引:6 包含:字符串(1)“”

索引:7 包含:字符串(1)“J”

【讨论】:

  • 你错了。如果我写 echo $rootbeer[7];只有这样 J 才会被打印,否则不会。这意味着索引 5 和 6 也存在,我想打印出来,但不幸的是我无法打印出来。我希望在不将约束变量 $rootbeer 的字符串转换为任何数组,然后使用一些数组函数来获取所有键的情况下完成这件事。你应该再试一次。
  • echo $rootbeer[7] 并不意味着 $rootbeer[5] 和 $rootbeer[6] 存在
  • @LelioFaieta :这确实意味着。他们确实存在我的朋友。它们包含空白空格。就像索引 1 和 3 中包含空白空格一样。
  • @SerialKisser 您应该编辑您的问题,因为它完全不清楚您想要什么。输出的外观示例可能会有所帮助。
  • 我同意@simon,无论如何,我更新了答案,如您所见,添加索引 [7] 还创建索引 [5]​​ 和索引 [6]
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-12-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-09-24
相关资源
最近更新 更多