2015-12-14 5 views
-2

я посылаю массив PHP как:исправить искаженный яваскрипт массив

$var = array (
0=> 4, 
1=> 6, 
2=> 8, 
... 

как json_encode ($ Var); в Ури, а затем я получаю его в файл яваскрипта еще хорошо здесь, но когда я нажимаю его в новый массив так:

this.patg.push(attd); 

Вставляется, как это ниже.

var attds = ["4,6,7,8,9,5558,5560,5573,5574,5586,5589,5606"] 

Я знаю, что мне нужно найти проблему. но

Вопросы:

  1. могли бы вы сказать мне, почему это могло happends или помочь мне справиться с этим.

  2. но в любом случае только для знания. как бы вы добавили дополнительные «" окружения, которые я пропустил, чтобы быть массивом, или это безумная идея исправить это?

+0

Лучше сосредоточиться на 1 вопрос в то время. Для вопроса 1 нам нужно будет увидеть PHP-код, который генерирует ваш массив, и вопрос должен быть помечен как PHP. Для вопроса 2 вы, вероятно, хотите ['string.split (',')'] (http://www.w3schools.com/jsref/jsref_split.asp) – Stuart

+0

attd and attds ?? опечатка?? Похож на свою строку, которую вы получаете. В этом случае вам нужно разделить его на ',' как разделитель и вставить в массив. –

+0

вы уверены, что я смогу разбить его, имея «[» в начале «]» в конце? , Потому что мне это не кажется – Mik

ответ

2

Если вы получаете значение строки, и вы хотите использовать его как массив целых чисел, вы должны разделить его в массив первых:

var receivedData = "4,6,7,8,9,5558,5560,5573,5574,5586,5589,5606"; 
var dataArray = receivedData.split(","); 

После этого вы можете использовать его с другим массивом, однако имейте в виду, что если у вас уже есть определенный массив, в который вы хотите нажать dataArray, вы не должны push, а concat.

Другими словами, если у вас есть:

var previousArray = [1,2,3]; 
previousArray.push(dataArray); 

Вы получите

[1,2,3, [4,6,7,8,9,5558,5560,5573 , 5574,5586,5589,5606]]

, что означает, что весь массив выталкивается на 4-ю позицию previousArray.

Если, с другой стороны, вы concat массивы будут объединить:

var previousArray = [1,2,3]; 
previousArray.concat(dataArray); 

[1,2,3,4,6,7,8,9,5558,5560, 5573,5574,5586,5589,5606]

Источник: http://www.w3schools.com/jsref/jsref_concat_array.asp

+0

Вы уверены, что я сможем разбить его, имея «[» в начале «]» в конце? @Выбывать ? , Не могу этого сделать. – Mik

+0

Вы изменили половину своего вопроса. Я думал, что вы получаете строку, которая при нажатии в массив оставляет вас с результатом, о котором вы говорили в своем вопросе. В любом случае проблема заключается в том, что вам нужно объединить эти массивы, а не просто вставлять их, из-за причин, о которых я говорил , – Dropout

Смежные вопросы