为什么在此PHP foreach循环中$value是一个数组?

在我的jQuery代码中,我正在创建一个像这样的对象:

var fields = [
              ['title','New Title'],
              ['description', 'New Description'],
              ['stuff', ['one','two','three']]
             ];
var objectsArray=[
                  {
                   fields:fields
                  }
                 ];

var saveObject = {
                  command: 'test',
                  callback:'testResopnse',
                  objects: objectsArray
                 }

然后我通过ajax发送到这样的PHP页面

saveDataAsParSEObjects(saveObject)

function saveDataAsParSEObjects(saveObj){
        $.ajax({
              type: "POST",
              dataType: "json",
              url: "PHP/parseFunctions.PHP",
              data: {data:saveObj},
              success: function(response) { 
                 console.log(response);
              },
              error: function(response) {
                 console.log(response);
              }
        });
};

在我的PHP页面中,我正在这样做:

$data= $_POST['data'];

if($data['command'] == 'test'){
    testStuff($data);
}
function testStuff($data){
    $objects = $data['objects'];
    foreach($objects as $object){
        $fields = $object['fields'];
        foreach($fields as $column => $value){

            echo is_array($value) ? 'Array, ' : 'not an Array, ';
        }
    }
}

考虑到我在jQuery页面上的原始字段数组,我希望testStuff()返回:

“不是数组,不是数组,数组”.

但是它返回:

“数组,数组,数组”

当我期望字符串将$value用作此foreach循环中的数组时,为什么?

foreach($fields as $column => $value)

解决方法:

您需要再循环一次,因为您的fields数组是一个数组数组(以此伪示例为例):

Array(
    INDEX => Array(...),
    INDEX => Array(...),
    INDEX => Array(...),
)

您只需要再增加1个循环:

$fields = $object['fields'];
foreach($fields as $column => $value){
    foreach($value as $key => $obj) {
        echo is_array($obj) ? 'Array, ' : 'not an Array, ';
    }
}

相关文章

页面搜索关键词突出 // 页面搜索关键词突出 $(function () {...
jQuery实时显示日期、时间 html: <span id=&quot...
jQuery 添加水印 <script src="../../../.....
中文:Sys.WebForms.PageRequestManagerParserErrorExceptio...
1. 用Response.Write方法 代码如下: Response.Write(&q...
Jquery实现按钮点击遮罩加载,处理完后恢复 思路: 1.点击按...