Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/275.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/388.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
多维PHP数组到JSON数组_Php_Javascript_Arrays_Json - Fatal编程技术网

多维PHP数组到JSON数组

多维PHP数组到JSON数组,php,javascript,arrays,json,Php,Javascript,Arrays,Json,我有一个PHP数组: Array ( [messages] => Array ( [0] => Array ( [sender] => 17 [receiver] => 4 [message] => TEST 2 [timesta

我有一个PHP数组:

Array
(
    [messages] => Array
        (
            [0] => Array
                (
                    [sender] => 17
                    [receiver] => 4
                    [message] => TEST 2
                    [timestamp] => 1367200891
                    [read] => 0
                )

            [1] => Array
                (
                    [sender] => 17
                    [receiver] => 4
                    [message] => TEST 1
                    [timestamp] => 1367197661
                    [read] => 0
                )

        )

    [new_messages] => 2
)
它通过Ajax请求检索,使用
json\u encode()
在PHP中输出

function getMessages(rec){
var nmsg = $.ajax({
        type: "GET",
        async: true,
        url: "/ps/getUserMessages.php",
        data: {'u':rec,'s00':s00,'n01':n01,'t02':t02}       
    });
    nmsg.done(function(data) {
        var json = JSON.parse(data);
        if (typeof json.messages[0].message !== 'undefined') {
            printMessage(json);
        }
    }); 
}
例如,作为
printMessage()
函数,我需要执行以下操作:

loop(){
    $("#elem").append(
          '<div>Sender: '+arrayOfValues.sender+'</div>'
         +'<div>Message: '+arrayOfValues.message+'</div>'
    );
}
loop(){
$(“#元素”)。追加(
'发件人:'+arrayOfValues.Sender+'
+'消息:'+arrayOfValues.Message+''
);
}
对于每个值数组


我尝试了jQuery
$。each()
for()
以及我找到的一些示例,但我无法开始工作。

如果您想在给定的结构上进行迭代,应该使用以下内容作为打印消息:

function printMessage( json ){
    for ( var i in json.messages ) {
        var currentMessage = json.messages[i];

        $("#elem").append(
          '<div>Sender: '+currentMessage.sender+'</div>'
         +'<div>Message: '+currentMessage.message+'</div>'
        );
    }

}
函数打印消息(json){
for(json.messages中的var i){
var currentMessage=json.messages[i];
$(“#元素”)。追加(
'发件人:'+currentMessage.Sender+''
+'消息:'+currentMessage.Message+''
);
}
}

类似的方法应该可以:

function printMessage(data) {
  for( var i=0; i<data.messages.length; i++ ) {
    $("#elem").append(
        '<div>Sender: ' + data.messages[i].sender + '</div>'
       +'<div>Message: ' + data.messages[i].message+ '</div>'
    );
  }
}
函数打印消息(数据){

for(var i=0;i使用serialize()和unserialize()在php和js之间传递一个数组,然后轻松地返回。或者您可以使用json_encode()在php页面后面的代码中。然后将其传递回ajax函数,该函数可以将其转储到一个文本框中,该文本框可以发布并进行json解码,或者您也可以使用javascript进行json解码,并获得一个数组。这两种方法都可以正常工作。@Dave我认为问题不在编码中,而是在访问收到的结果时。看不到e输出到PHP就是这样,从他的代码看,他纯粹是在试图用JS处理它。@dave我说我是在用json_encode()将它传递到javascript。读得好:)它只是用来显示结构的数组。如果您的php将其作为JSON传回,那么只需将ajax数据类型设置为ajax
dataType:'JSON'
,然后使用onsuccess函数success:function(data){,您可以将数组作为数据[“column”]引用即可因此,您不必费心解析json等,您只需直接循环即可。您可以从整个代码中删除至少7行代码。不要将
用于(var i in…
用于数组。它用于
对象
而不是其他。因此,此答案对于这种情况是一个合适的解决方案(参考:)@henasraf最好作为参考而不是学校。为什么?看看-