How to convert a Javascript array to a PHP array?

Asked

Viewed 139 times

6

The system gives me a Javascript matrix to work on the page. I can get this array with PHP, but I don’t know how to convert Javascript to PHP and work using PHP.

This is an example of the Javascript matrix:

<script type="text/javascript">
  var uCatsOut=[
    //['ID','ParentID','isSection','Name','Descr','URL','NumEntries']
    ['1','0','0','categoria A','Descrição da categoria A','/board/categoria_a/1','1'],
    ['2','0','0','Categoria B','Descrição da categoria B','/board/categoria_b/2','0']
  ];
</script>

I want to leave it like this:

$categ = array(
    '0' => array('1','0','0','categoria A','Descrição da categoria A','/board/categoria_a/1','1'),
    '1' => array('2','0','0','Categoria B','Descrição da categoria B','/board/categoria_b/2','0'),
);
  • 2

    I believe that if you serialize in JSON using Javascript and de-serialize using PHP you will get exactly what you want.

1 answer

7


On the Javascript side you have to serialize that array. You can use JSON.stringify like this:

JSON.stringify(uCatsOut);
// dá uma string -> '[["1","0","0","categoria A","Descrição da categoria A","/board/categoria_a/1","1"],["2","0","0","Categoria B","Descrição da categoria B","/board/categoria_b/2","0"]]'

On the PHP side you have to decode the JSON, you can use the json_decode.

$json = '[["1","0","0","categoria A","Descrição da categoria A","/board/categoria_a/1","1"],["2","0","0","Categoria B","Descrição da categoria B","/board/categoria_b/2","0"]]';
$phpArray = json_decode($json, true);
var_dump($phpArray);

That will give:

array(2) {
  [0]=>
  array(7) {
    [0]=>
    string(1) "1"
    [1]=>
    string(1) "0"
    [2]=>
    string(1) "0"
    [3]=>
    string(11) "categoria A"
    [4]=>
    string(26) "Descrição da categoria A"
    [5]=>
    string(20) "/board/categoria_a/1"
    [6]=>
    string(1) "1"
  }
  [1]=>
  array(7) {
    [0]=>
    string(1) "2"
    [1]=>
    string(1) "0"
    [2]=>
    string(1) "0"
    [3]=>
    string(11) "Categoria B"
    [4]=>
    string(30) "Descrição da categoria B"
    [5]=>
    string(20) "/board/categoria_b/2"
    [6]=>
    string(1) "0"
  }
}
  • 3

    And, if it is not clear to the author of the question, the passing of data from JS to PHP needs to take place via Ajax or sending form.

Browser other questions tagged

You are not signed in. Login or sign up in order to post.