10

In php I used json_encode(...) and then got the value in Javascript, looks as the following:

["float","float","float","float"]  // PS: This is a string...

And I would like to make this into a normal javascript array, like so:

Arr[0] // Will be float
Arr[1] // Will be float
Arr[2] // Will be float
Arr[3] // Will be float

How is this possible?

1
  • if you passed the array back using json_encode() you have an array and you can index it by the method you showed... Commented Dec 21, 2012 at 17:53

3 Answers 3

27

It sounds like you're retrieving a JSON string in JavaScript (perhaps via AJAX?). If you need to make this into an actual array value, you'd probably want to use JSON.parse().

var retrievedJSON = '["float","float","float","float"]'; // normally from AJAX
var myArray = JSON.parse(retrievedJSON);

If you're actually writing out a value into the page, rather than using AJAX, then you should be able to simply echo the output of json_encode directly, without quoting; JSON itself is valid JavaScript.

var myArray = <?php echo json_encode($myPhpArray); ?>;
Sign up to request clarification or add additional context in comments.

1 Comment

very nice. I taught it is object in java script. Thanks for your answer
7
var myArray = <?= json_encode($myPhpArray); ?>;

Pretty simple. ;-)

Example:

<?php
  $myPhpArray = array('foo', 'bar', 'baz');
?>
<script type="text/javascript">
  var myJsArray = <?= json_encode($myPhpArray); ?>;
</script>

Should output (view-source):

<script type="javascript">
  var myJsArray = ["foo","bar","baz"];
</script>

Example

4 Comments

And that gives me the javascript array?
yes. it's taking an PHP variable and converting in to JSON which javascript will be able to parse and store.
As an explanation it might be helpful to note that JSON (JavaScript Object Notation) is a subset of the JavaScript language and so can be parsed successfully by any JavaScript interpreter.
Indeed, JSON!=JavaScript, it's just a serialized representation of data that JavaScript (and many other languages) can translate.
2

I reccomend using jquery. The php file should look as such ...

//location.php
<?php
$change = array('key1' => $var1, 'key2' => $var2, 'key3' => $var3);
echo json_encode($change);
?>

Then the jquery script ...

<script>
$.get("location.php", function(data){
var duce = jQuery.parseJSON(data);
var art1 = duce.key1;
var art2 = duce.key2;
var art3 = duce.key3;
});
</script>

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.