20

I am unable to figure out how to assign PHP array to jQuery array?.

I want to do something like the following:

var jQueryArray = <?php $phpArray; ?>;

Can anyone tell me how I can do this?

2

7 Answers 7

53

Use json encode.

json_encode — Returns the JSON representation of a value

Example:

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

1 Comment

@McGafter Good catch!
7

You need to use json_encode

var jQueryArray = <?php echo json_encode($phpArray); ?>;

2 Comments

Err... Isn't something missing?
Yes, the echo was missing. Sorry, I have updated the code
7

You could use the json_encode function:

var jQueryArray = <?php echo json_encode($phpArray); ?>;

Comments

3

You can use json_encode

<?php
$arr = array('a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5);

echo json_encode($arr);
?>

Comments

3

Don't forget that PHP json_encode will only work on UTF8 encoded text ...

$jsonString = json_encode(array_map(utf8_encode, $rawArray));

would be a more universal solution I think, but I'm a bit tired so 'scuse any coding gaffs ...

Comments

2

It's not going to be a JQuery array, it's a javascript array (just to clarify since it's sounds like you're probably a noob). Set your JS array to this:

<?php echo json_encode($phpArray);?>

See php json_encode docs: http://php.net/manual/en/function.json-encode.php

1 Comment

@mplungjan haha i know - i shouldnt have wasted time getting the link
-1

You can use Json or use foreach in HTML file

<?php foreach($phpArray as $key => $val): ?>
      jQueryArray[<?php echo $key; ?>] = <?php echo $val; ?>
<?php endforeach; ?>

1 Comment

You need some quotes there

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.