Php创建文件json

Php创建文件json,php,json,file,Php,Json,File,我需要帮助创建json文件 我的php代码: <?php $callback = $_REQUEST['callback']; $ev = array('data'=>array('channel'=>array())); foreach ($this->categoriefigli as $figli): foreach ($this->articoli as $art): if($figli[

我需要帮助创建json文件

我的php代码:

<?php

    $callback = $_REQUEST['callback'];
    $ev = array('data'=>array('channel'=>array()));

    foreach ($this->categoriefigli as $figli):
        foreach ($this->articoli as $art):

            if($figli['categoriafigli_id'] === $art['categoriepadri']):

                $e[] = array('ids' => $art['id'],
                          'titolo' => $art['titolo'],
                     'descrizione' => $art['descrizione'],
                          'prezzo' => $art['prezzo_tavolo']);

                $a = array('id' => $figli['categoriafigli_id'],
                         'nome' => $figli['categoriafigli_nome'],
                        'items' => array());

                array_push($a['items'],$e);
            endif;

        endforeach;

        array_push($ev['data']['channel'],$a);

    endforeach;

    if ($callback) 
    {
        header('Content-Type: text/javascript');
        echo $callback . '(' . json_encode($ev) . ');';
    } 
    else 
    {
        header('Content-Type: application/json');
        echo Zend_Json::encode($ev);
    }
?>

这是因为你在这么做

$e[] = array(
  'ids' => $art['id'],
  'titolo' => $art['titolo'],
  'descrizione' => $art['descrizione'], 
  'prezzo' => $art['prezzo_tavolo']
  );
在两个foreach循环中,并且从不清除它

如果每个类别都有不同的产品,则需要在类别之间重置
$e
,可能如下所示:

foreach ($this->categoriefigli as $figli): 
  $e = array();
  foreach ($this->articoli as $art):

问题不在于json,而在于来自数据库的数据。您可以发布您的查询吗?也许打印您的数组以确认问题所在。您正在使用
$this->
。。。在一个物体之外…感谢所有人的帮助。Igy谢谢你的解决方案…够了这么少XD
foreach ($this->categoriefigli as $figli): 
  $e = array();
  foreach ($this->articoli as $art):