Что нового

[Массивы] Как объединить два массива одинаковой размерности

misha497

Новичок
Сообщения
24
Репутация
2
День добрый. В autoit только начинаю разбираться и у меня возник такой вопрос: Допустим у меня есть два массива
Код:
$1[2] = (1,2) и $2[2] = ('июль', 'август'). ;Как получить следующий:
 $3 = (1,2,'июль','август')
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4 020
Репутация
622
Код:
$N = 2;
$1[$N] = (1,2)
$2[$N] = ('июль', 'август')
Dim $3[2*$N]
For $i = 0 to $N - 1
    $3[$i] = $1[$i]
    $3[$N + $i] = $2[$i]
Next
 

Garrett

Модератор
Локальный модератор
Сообщения
3 999
Репутация
964
UDFs Help
Код:
_ArrayConcatenate()
 
Автор
M

misha497

Новичок
Сообщения
24
Репутация
2
Спасибо большое. :IL_AutoIt_1:
 

running-frag

why me?
Сообщения
441
Репутация
60
мда, автоит явно не программисты писали =\ столкнулся тут с банальщиной, но походу будут костыли

ситуация

Код:
; начальный массив
$_var[0][0] = ""
$_var[0][1] = ""
$_var[0][2] = ""
$_var[0][3] = ""
; сторонний массив
$_sub[0] = "zero"
$_sub[1] = "one"
$_sub[2] = "two"
$_sub[3] = "three"

; что мы хотим видеть в итоге
; дописать в массив $_var, массив $_sub под "следующим" индексом а именно

$_var[0][0] = ""
$_var[0][1] = ""
...
$_var[1][0] = "zero"
$_var[1][1] = "one"
$_var[1][2] = "two"
$_var[1][3] = "three"


какой коммандой это сделать? _ArrayConcatenate($_var[0][0], $_sub) не пашет

PS: только не говорите что нужно через циклы тупейшим образом перезаписывать
 

axlwor

Скриптер
Сообщения
657
Репутация
147
покажи в каком языке такое можно сделать одной командой?
 

running-frag

why me?
Сообщения
441
Репутация
60
в PHP достаточно
Код:
;как это делается в php
....
$_var[1] = $_sub
 

axlwor

Скриптер
Сообщения
657
Репутация
147
в autoit такая команда сделает массив в массиве
OffTopic:
но... да. в этом языке много вещей нет и многих не будет, зато есть другие
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4 020
Репутация
622
axlwor [?]
в autoit такая команда сделает массив в массиве
в AutoIt такая команда приведет к ошибке, т.к. идет попытка обратиться к массиву через меньшее кол-во индексов, чем объявлено.
 

running-frag

why me?
Сообщения
441
Репутация
60
Kaster прав, даже если мы обьяавим $_var[10][10]

если я что то путаю, дайте ваш пример (рабочий) по этому принцепу
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4 020
Репутация
622
running-frag
такого примера нет, и да, надо делать через цикл с поэлементным присвоением
 

running-frag

why me?
Сообщения
441
Репутация
60
что и требовалось доказать :(
Kaster спс за помощь ;D
 

axlwor

Скриптер
Сообщения
657
Репутация
147
мы это обсуждаем или нет?
Код:
#include <array.au3>

Dim $Test[5] = [3, 1, StringSplit("Abe|Jack|Bobby|Marty", "|"), Cos(0)]
_ArrayDisplay ($Test)
_ArrayDisplay ($Test[2])
 

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5 379
Репутация
2 711
А в чем вообще проблема? Написать цикл из двух строк и оформить его в виде функции?
 
Верх