var fields = [
['title','New Title'],
['description', 'New Description'],
['stuff', ['one','two','three']]
];
var objectsArray=[
{
fields:fields
}
];
var saveObject = {
command: 'test',
callback:'testResopnse',
objects: objectsArray
}
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);
}
});
};
$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, ';
}
}