ActionScript соединение / разделение - PullRequest
1 голос
/ 21 июля 2011

Привет, ребята. Мне нужно перенести несколько функций из AS в PHP, но я столкнулся с небольшой проблемой.

Есть массив, пусть он называется arr1.Существует переключатель, который выдвигает аргумент для этого массива, но после его завершения я застрял на join("").split("");

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

Я знаю, что это просто, но у меня никогда не было опыта работы с массивами во флэш-памятиЯ только что понял, что join("") использовался для преобразования массива в строку, но разве это не разделено?

Ответы [ 2 ]

2 голосов
/ 21 июля 2011

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.

0 голосов
/ 21 июля 2011

То, что делает этот код, сначала объединяет все значения вашего массива в строку, а затем разделяет их на массив отдельных символов.Эквивалент PHP будет выглядеть примерно так ( проверено ):

$arr1 = array("apple");  //arr1 after the switch
$arr1 = str_split(implode('',$arr1));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...