0

我在 while 循环中有以下代码,它从 WordPress 的自定义字段中获取一个 json 数组,将其转换为一个可以正确打印的 php 数组。我看到每个数组都打印在 AJAX 响应中。

如果每个数组都正确打印,这意味着$testmeta每个循环都存储一个数组,为什么会$position = end($testmeta);返回此错误Warning: end() expects parameter 1 to be array, null given

if ( $posts->have_posts() ) {

    while ( $posts->have_posts() ) {

    $results_array = get_post_meta($thepostid, 'results',true);
    $testmeta = json_decode($results_array,true);
    print_r($testmeta);
    $position = end($testmeta);
    }
}

我试过放在unset($testmeta)代码下面,但没有帮助。

我还尝试print_r(end($testmeta));了打印每个数组的末尾但仍然抛出错误

4

1 回答 1

0

可能 $testmeta 是空的(有时是循环),所以在分配之前测试它:

if (!empty($testmeta)) $position = end($testmeta);
于 2013-09-20T20:00:27.570 回答