大家好我必须将一些函数从AS移植到PHP,但我遇到了一个小问题。
有一个数组,我们称之为arr1。有一个开关,将参数推送到这个数组,但是在开关结束后,我被卡在join("").split("");
var arr1 = [];
switch (myString)
{
case "apple":
{
arr1.push("apple");
break;
}
}
}
arr1 = arr1.join("").split("");
我知道很简单,但我之前从未体验过闪存中的数组,我刚刚意识到join("")
用于将数组转换为字符串,但是没有拆分反转这个?
答案 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));