내 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, ';
}
}
}
fields
jQuery 페이지의 원래 배열을 고려하면 testStuff()
다음을 반환 할 것으로 예상 합니다.
'not an Array, not an Array, Array,'
.
그러나 대신 다음을 반환합니다.
'Array, Array, Array,'
$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, ';
}
}
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다