如何解决PHP数组循环 - 无法访问元素
$table_array=array();
$table_array = $mydb->get_results($mydb->prepare("SELECT sid,stitle FROM tablename"));
我成功检索到数据。控制台显示通过ajax返回的json_encode(成功函数):
function align_surveys(){
jQuery.ajax({
type: 'POST',url: MyAjax.ajaxurl,data: {"action": "align_sids"},success:
function(data){
console.log('data: '+ data)
}
});
}
"data:":[{"sid":"525331","stitle":"First Title"},{"sid":"367775","stitle":"Second Title"}]
但是,当我运行 foreach 循环时,当我尝试访问它的元素时会收到 500 错误。
这个错误:
foreach($table_array as $row){
$s_ids[] = $row[0];
}
而且,这个错误:
foreach($table_array as $row){
$s_ids[] = $row['sid'];
}
gettype 告诉我这实际上是一个数组。但是,每当我引用数组元素时,我都会出错。我无法解决它。是否与方括号内的额外花括号有关?任何人,请指出我正确的方向。几个小时了....
更新: print_r 给我看这个:
Array ( [0] => Array ( [surveyls_survey_id] => 525331 [0] => 525331 [surveyls_title] => New Survey [1] => New Survey ) [1] => Array ( [surveyls_survey_id] => 367775 [0] => 367775 [surveyls_title] => Second Survey [1] => Second Survey ) )
这在我看来就像是一个数组数组,其中键实际上是值......不确定这是我得到的结果的方式或原因。
解决方法
开头的“数据”看起来像是另一个对象的一部分。试试 table_array['data']
看看是否适合你。如果没有,能不能把json_encode输出的整个json对象贴出来。
我解决了。 我必须对数组进行 json_encode,以便我可以有效地解析它。 感谢您的贡献。
,您遇到此问题的原因可能有多种。
第一个似乎是在您将类型显式设置为 array() 的地方解决的; 第二个是使用 JSON_DECODE 命令。如果您在该函数中使用布尔值 true/false,它可以返回一个数组或一个对象。
$mayarray = json_decode($jsonobject,true);
这会将 JSON 数据加载到关联数组中。如果您使用 false 或将其留空,则取决于您的 PHP 配置,它将作为对象返回,这意味着如果您尝试将其作为数组访问,您将收到 500 错误。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。