ActionScript加入/拆分

时间:2011-07-21 14:34:52

标签: php arrays flash actionscript

大家好我必须将一些函数从AS移植到PHP,但我遇到了一个小问题。

有一个数组,我们称之为arr1。有一个开关,将参数推送到这个数组,但是在开关结束后,我被卡在join("").split("");

var arr1 = [];
    switch (myString)
    {
        case "apple":
        {
            arr1.push("apple");
            break;
        } 
    }
}
arr1 = arr1.join("").split("");

我知道很简单,但我之前从未体验过闪存中的数组,我刚刚意识到join("")用于将数组转换为字符串,但是没有拆分反转这个?

2 个答案:

答案 0 :(得分:2)

join(delimiter:*)将从数组创建一个字符串,其中数组中的每个项目都以分隔符分隔(默认为NaN,如果您有兴趣的话)。

split(delimiter:*, limit:Number = 0x7fffffff)根据分隔符的大小将字符串放入限制长度数组中。

虽然这可能看起来应该始终如一地输出相同的数组:

var delim:String = "someString";
arr.join(delim).split(delim)

在这种情况下,它实际上会产生不同的数组:

var arr:Array = ['asomeStringb','c','d']
var delim:String = "someString";
trace(arr.join(delim).split(delim))//[a,b,c,d]

如果分隔符是一个用于拆分的空字符串,它将逐个字符地打破字符串:

var arr:Array = ['ab','c','d']
var delim:String = "";
trace(arr.join(delim).split(delim))//[a,b,c,d]

希望有所帮助。

PHP等价物可能是:

$input = array( /*stuff...*/ );
// join is an alias of implode. I used it here because the AS method is join.
$input = /* explode( <-- won't work */ str_split( "", join($input)); 

旁注:在AS3中,始终尽可能严格地键入变量 - 最终确实有帮助。 var arr1应为var arr1:Array

答案 1 :(得分:0)

此代码的作用是首先将所有数组值连接成一个字符串,然后将它们拆分为单独字符的数组。 PHP等价物看起来像这样(tested):

$arr1 = array("apple");  //arr1 after the switch
$arr1 = str_split(implode('',$arr1));