程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> PHP綜合 >> php數組轉換js數組操作及json_encode的用法詳解

php數組轉換js數組操作及json_encode的用法詳解

編輯:PHP綜合

對於php,個人感覺能夠熟練操作數組和字符串,基本上已經是入門了,php本身有很多操作數組和字符串的函數,今天在做一個功能時,需要用Js動態的創建門店信息,這些信息是要從後台添加的,想來想去,通過php讀取數據庫,得到數組,然後將數組轉化成符合需求js數組,
php數組形式為:
復制代碼 代碼如下:
$newArray = array(array('地區'=>'北京地區','items'=>'10','detail'=>array(0=>array('店名'=>'旗艦店','url'=>'http://www.'),1=>array('店名'=>'jjjj','url'=>'http://www.fdd'))),
                  array('地區'=>'上海地區','items'=>'11','detail'=>array(0=>array('店名'=>'旗艦店','url'=>'http://www.'),1=>array('店名'=>'jjjj','url'=>'http://www.fdd'))),
                 );

這裡用的一個很方便的函數:json_encode();
var jsarray = new Array();
jsarray = <?php echo json_encode($newwarr);?>;
用console.log();可以看到jsarray的結構。   

在這裡如何構造這樣一個符合要求的php數組呢?(我用的是phpcms系統)
復制代碼 代碼如下:
    $sql= 'select catid,catname,items from category where parentid=10';
    $result = mysql_query($sql);
    while ($row = mysql_fetch_array($result)) {
     $arrArea['地區'] = $row['catname'];
     $arrArea['items'] = $row['items'];
     unset($arrArea['detail']);//這一步很關鍵,要不得出的信息就會累加。
     $sql2 = 'select title,url from news where catid='.$row['catid'];
     $fendian = mysql_query($sql2);
     while ($re=mysql_fetch_assoc($fendian)) {
      $item['店名']=$re['title'];
      $item['url']=$re['url'];  
      $arrArea['detail'][] = $item; 
     }
     $newwarr[]=$arrArea;
    }   
    var_dump($newwarr);

json_encode:對變量進行 JSON 編碼,該函數只能接受 UTF-8編碼的數據 .

相對應的還有json_decode,第二個參數為true,返回數組,執行相逆的過程。

json只能用對象和數組。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved