我有一个问题。我创建了一个包含连接变量的变量, 例如:
$a=89111213
我想获得这样的数组:
$b(
1=>8,
2=>9,
3=>11,
4=>12,
5=>13
)
答案 0 :(得分:2)
您可以使用explode():
$b = explode(' ', $a);
答案 1 :(得分:2)
这看起来很危险。你有几个数字连接到一个整数?请注意,整数值有一个上限,因此您可能会遇到包含许多元素的错误。
另请注意,当数字长度不同时,您的问题无法正确解决,因为您无法知道89111213
中哪些组合(如果有)正确:
您需要某种分隔符才能使其稳定且面向未来。
答案 2 :(得分:2)
<强>更新强>
正如@therefromhere在他的评论中所暗示的,不是将数字连接成一个字符串,而是将它们直接放在一个数组中:
$a = array();
for(...) {
$a[] = $somevariable;
}
这是一种有效的方法。
重要:强>
假设:数字按递增顺序连接,并以数字&lt; 10:)
$str = "89111213";
$numbers = array();
$last = 0;
$n = '';
for($i = 0, $l = strlen($str);$i<$l;$i++) {
$n .= $str[$i];
if($n > $last || ($i == $l - 1)) {
$numbers[] = (int) $n;
$last = $n;
$n = '';
}
}
print_r($numbers);
打印
Array
(
[0] => 8
[1] => 9
[2] => 11
[3] => 12
[4] => 13
)
虽然这可能会有所作为,但在很多情况下会失败。因此:
您如何获得89111213
?如果您从数字8,9,11等生成它,您应该生成类似8,9,11,12,13
的内容。
答案 3 :(得分:1)
<? explode(" ", "a b c d e") ?>