程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
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數組形式為:[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'))), 
                 ); 

$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系統)


[php] 
$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); 

    $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,返回數組,執行相逆的過程。

 

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