Это работает нормально, до тех пор, как их только одна запись добавляется в массив, Я добавляю несколько значений, в других словах слов функция будет запускать несколько раз, а затем я хочу отправить весь этот массив , но это похоже на добавлять все с запятой .
Я не уверен, что вы говорите именно здесь. Второй пример, который я ранее дал, предполагает наличие одной пары x, y для каждого uid
, но не устанавливает ограничений на количество uid
s в _tags
. Вот почему var _tags = {};
является нашей функцией - так что это глобальная переменная.
Следующие модификации позволит вам иметь несколько пар х, у каждого uid
:
function add_tag_queue(uid,x,y){
/*
* detect if _tags[uid] already exists with one or more values
* we assume if its not undefined then the value is an array...
* this is similar to doing isset($_tags[$uid]) in php
*/
if(typeof _tags[uid] == 'undefined'){
/*
* use an array literal by enclosing the value in [],
* this makes _tags[uid] and array with eah element of
* that array being a hash with an x and y value
*/
_tags[uid] = [{'x':x,'y':y}];
} else {
// if _tags[uid] is already defined push the new x,y onto it
_tags[uid].push({'x':x, 'y':y});
}
}
Это должно работать:
function add_tag_queue(uid,x,y){
_tags.push([uid, x,y]);
}
если вы хотите uid
как ключ то вам необходимо использовать объект/хэш не array
var _tags = {}; // tags is an object
function add_tag_queue(uid,x,y){
_tags[uid] = {'x':x,'y':y};
}
Это работает нормально, пока их только одна запись добавляется в массив, я добавляю несколько значений, другими словами функция будет работать несколько раз, а затем я хочу отправить весь массив, но это, кажется, просто добавляет все с помощью запятой. – Brian
Второй способ, который я думаю, это то, что я хочу, но знаете ли вы, как преобразовать его в массив в php? – Brian
'json_decode' будет декодировать строку json в php-массив. http://php.net/manual/en/function.json-decode.php – prodigitalson