За последние 24 часа нас посетили 56864 программиста и 1791 робот. Сейчас ищет 841 программист ...

Json распарсить двумерный массив

Тема в разделе "PHP для новичков", создана пользователем des1roer, 17 апр 2014.

  1. des1roer

    des1roer Новичок

    С нами с:
    10 апр 2014
    Сообщения:
    55
    Симпатии:
    0
    Есть страничка на пхп, она собирает данные из таблицы, получает двумерный массив php

    Код (Text):
    1.  ....
    2.     $Sum = array($Arr,$Ar);
    3.     echo json_encode($Sum);
    выдает [["485","485","579","577","577"],["2014-04-01 10:17:53","2014-04-01 10:17:52","2014-03-28 15:28:44","2014-03-28 15:28:43","2014-03-28 15:28:42"]]
    необходимо распарсить этот массив и отдать функции в виде двумерного массива в Js .Соответсвенно js функция лежит в другой странице

    Код (Text):
    1. App = function(){
    2.     var ajaxStack = [];
    3.     this.pushAjaxResult = function(ajaxResult)
    4.     {
    5.         ajaxStack.push(ajaxResult);
    6.     }
    7.     this.getLastAjaxResult = function()
    8.     {
    9.         return ajaxStack[ajaxStack.length - 1];
    10.     }
    11. };
    12. app = new App(); // теперь window.app будет ссылаться на инстанс App
    13.         $.get('/testo.php',function(Sum){
    14.         var x = JSON.parse(Sum);
    15.         app.populateTable(x);
    16.         },"json")
    17.                 app.populateTable = function(x) {
    18.                 var buf =[];
    19.                 for (var i = 0;i<x.length;i++){
    20.                         buf[i]=[x[i]];
    21.                 }              
    22.                 $.plot($("#placeholder"), [ buf ]);
    вот эта функция работает для одномерного массива. но для двумерного сваливает все значения одного столбца в buf (0), а второго в buf (1). И сразу же вопрос - как сделать это красивее, и вообще то лучше в одной странице это сделать. Функцию где-то подсмотрел, для одномерного массива хватало, а для двумерного что-то интереснее нужно
     
  2. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    json_decode() стандартная функция
     
  3. des1roer

    des1roer Новичок

    С нами с:
    10 апр 2014
    Сообщения:
    55
    Симпатии:
    0
    И? говорите как с младенцем, я вообще не секу. Мне бы коду
     
  4. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    чувак. в доку глянь.
     
  5. des1roer

    des1roer Новичок

    С нами с:
    10 апр 2014
    Сообщения:
    55
    Симпатии:
    0
    и вообще то json_decode() это функция пхп а мне нужно в js передать
     
  6. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    а он уже в виде двумерного массива. проблема в чем? на страницу перекинуть? просто

    echo '<script> var Sum = '.json_encode($Sum).';</script>';
     
  7. des1roer

    des1roer Новичок

    С нами с:
    10 апр 2014
    Сообщения:
    55
    Симпатии:
    0
    не нужен мне пхп. я могу в массив записать двумерный мне нужно в javascript прочитать его. json_decode() это функция пхп
     
  8. BlackScorp

    BlackScorp Новичок

    С нами с:
    16 апр 2014
    Сообщения:
    54
    Симпатии:
    0
    Адрес:
    Germany
    Код (Text):
    1.  
    2. <script>
    3. for(var i in data){
    4. var dataI = data[i];
    5. for(var j in dataI){
    6. var value = dataI[j];
    7. //or
    8. var value = data[i][j];
    9. }
    10. }
    11. </script>
     
  9. des1roer

    des1roer Новичок

    С нами с:
    10 апр 2014
    Сообщения:
    55
    Симпатии:
    0
    Ну разбить массив я понимаю как. Как с json это увязать то
     
  10. BlackScorp

    BlackScorp Новичок

    С нами с:
    16 апр 2014
    Сообщения:
    54
    Симпатии:
    0
    Адрес:
    Germany
    Код (Text):
    1.  
    2.   $.get('/testo.php',function(Sum){
    3.        
    4.        console.log(Sum);//сздесь уже JSON
    5. for(var i in Sum){
    6. var row = Sum[i];
    7. for(var j in row){
    8. var value = row[j];
    9. console.log(value);
    10. }
    11. }
    12.         },"json")
     
  11. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    echo '<script> var Sum = '.json_encode($Sum).';</script>';
    echo '<script> var Sum = '.json_encode($Sum).';</script>';
    echo '<script> var Sum = '.json_encode($Sum).';</script>';
    echo '<script> var Sum = '.json_encode($Sum).';</script>';
    echo '<script> var Sum = '.json_encode($Sum).';</script>';
    echo '<script> var Sum = '.json_encode($Sum).';</script>';

    =)
     
  12. BlackScorp

    BlackScorp Новичок

    С нами с:
    16 апр 2014
    Сообщения:
    54
    Симпатии:
    0
    Адрес:
    Germany
    Для етово надо понят как HTTP идет и што PHP сперва разрабатываетса а результат HTML код выходит

    Добавлено спустя 12 минут 34 секунды:
    а я все время думал, што "чувак" ето обзыванние, аказываетса што нет?
     
  13. des1roer

    des1roer Новичок

    С нами с:
    10 апр 2014
    Сообщения:
    55
    Симпатии:
    0
    igordata, мысль понятна. действительно в Sum лежит весь массив. тока таким перебором
    Код (Text):
    1. for(var i in Sum){
    2. var row = Sum[i];
    3. for(var j in row){
    4. var value = row[j];
    5. console.log(value);
    он каждый символ перебирает, нужно по запятым там или пробелам. но думаю это решаемо
     
  14. BlackScorp

    BlackScorp Новичок

    С нами с:
    16 апр 2014
    Сообщения:
    54
    Симпатии:
    0
    Адрес:
    Germany
    Код (Text):
    1. console.log(Sum[2][3])
     
  15. des1roer

    des1roer Новичок

    С нами с:
    10 апр 2014
    Сообщения:
    55
    Симпатии:
    0
    undefined

    Добавлено спустя 1 минуту 50 секунд:
    ну да, одномерный массив получаем. придется по квадратным скобкам разыскивать и собирать
     
  16. Ke1eth

    Ke1eth Активный пользователь

    С нами с:
    16 мар 2012
    Сообщения:
    1.073
    Симпатии:
    11
    Адрес:
    заблудилса
    Или я ничо не понял, или чо? :)
    ваще вот js:
    Код (Text):
    1. JSON.parse(your_string_here)
     
  17. des1roer

    des1roer Новичок

    С нами с:
    10 апр 2014
    Сообщения:
    55
    Симпатии:
    0
    ну так тоже канает
    Код (Text):
    1.  $.get('/testo.php',function(Sum){
    2. alert (Sum );
    3.         },      "json")
     
  18. BlackScorp

    BlackScorp Новичок

    С нами с:
    16 апр 2014
    Сообщения:
    54
    Симпатии:
    0
    Адрес:
    Germany
    index.php
    Код (Text):
    1.  
    2. <!DOCTYPE html>
    3. <html>
    4.     <head>
    5.  
    6.     </head>
    7.     <body>
    8.         <script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
    9.         <script>
    10.             $(function(){
    11.                $.get('test.php',function(data) {
    12.                     alert(data[0][0]); //2000
    13.                 }, "json");
    14.             });
    15.         </script>
    16.     </body>
    17. </html>
    test.php
    Код (Text):
    1.  
    2. <?php
    3. $subArray = array_fill(0, 10, rand(200, 5000));
    4. $array    = array_fill(0, 10, $subArray);
    5. header("Content-Type:application/json;charset=utf8");
    6. echo json_encode($array);
    у меня все идет
     
  19. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    даду урок грамотности =) тебе это нужно на начальном этапе, пока не привык писать коряво
    нет. "человек" на языке хиппи, теперь и нариков (наркоманов) всяких. Типа я нарик такой из тёмного двора подваливаю "эй пацанчик, доку читал?"
     
  20. BlackScorp

    BlackScorp Новичок

    С нами с:
    16 апр 2014
    Сообщения:
    54
    Симпатии:
    0
    Адрес:
    Germany
    спосибо за попровление, ничего, через несколько лет научусь ище.а ест тут IRC чат? я думаю так я лутше научусь
     
  21. romach

    romach Старожил

    С нами с:
    26 окт 2013
    Сообщения:
    2.904
    Симпатии:
    719