У меня есть строка PHP, как это:
$string = 'a => 1 , b => 2 , c => 3 , d => 4';
который я создал из данных из базы данных, где каждый "x => y"
представляет ассоциативную связь между x и y.
Затем я переношу эту строку в html-документ (JQuery) и пытаюсь сделать массив из него в JavaScript, чтобы я мог обрабатывать его на стороне клиента.
ВОПРОС:
Возможно ли создать массив JavaScript из строки?
Например, мне нужно получить значения в массиве, вызвав 'alert(array["c"]);'
или что-то подобное.
ПРИМЕЧАНИЕ. Не стесняйтесь изменять семантику указанной строки ($ string) по мере необходимости.
Любая помощь ценит парней ….
(например, файл, например array.php):
$array=array( 'a'=>'I am an A', 'param2_customname'=>$_POST['param2'], 'param1'=>$_POST['param1'] ); echo json_encode($array);
$.post('array.php', {'param1': 'lol', 'param2': 'helloworld'}, function(d){ alert(da); alert(d.param2_customname); alert(d.param1); },'json');
Вы можете использовать это для массивов, помните тег 'json'
в конце запроса каждый раз.
Вы должны заглянуть в JSON. PHP имеет функции для записи JSON, и javascript может декодировать такие объекты JSON и создавать собственные объекты
Вы можете использовать метод split () в javascript:
Я бы сделал это
<?php $string = "a => 1, b => 2"; $arr1 = explode(",",$string); $arr2 = array(); foreach ($arr1 as $str) { $arr3 = explode("=>", $str); $arr2[trim($arr3[0])] = trim($arr3[1]); } ?> <script type="text/javascript"> $(document).ready(function(){ var myLetters = new Array(); <?php foreach($arr2 as $letter => $number): ?> myLetters['<?php echo $letter; ?>'] = "<?php echo $number; ?>"; <?php endforeach; ?> }); </script>
который выведет это
<script type="text/javascript"> $(document).ready(function(){ var myLetters = new Array(); myLetters['a'] = "1"; myLetters['b'] = "2"; }); </script>