如何解决 $unset key 上的 key 变量

How to solve the key variable on $unset key

我是 运行 一个 PHP 脚本,并且不断收到如下错误:

Notice: Undefined variable: key in D:[=12=]-MYBLOG\SERVER-MYBLOG\InstantWP_4.3.1\iwpserver\htdocs\wordpress\wp-content\plugins\sama-author-review\admin\metabox.php on line 310

第 310 行如下所示:

unset( $new['items_review'][$key] );

这里是代码:

        if ( $new['items_review'] && is_array( $new['items_review'] )) {

            foreach ( $new['items_review'] as $review ) {

                if ( empty( $review['label'] ) ) {
                    unset( $new['items_review'][$key] );
                } else {
                    $review['value'] = absint( $review['value'] );
                    $review['label'] = esc_attr( $review['label'] );

                    if ( empty( $review['slug'] )) {
                        $review['slug']  = sanitize_title( $review['label'] );
                    } else {
                        $review['slug']  = sanitize_title( $review['slug'] );
                    }
                    $review['style'] = esc_attr( $review['style'] );
                    $items_review[$i] = $review;
                    $i++;
                }
            }   
        }

是否有解决这些错误的快速修复方法? 非常感谢您的帮助

谢谢

我想我明白问题出在哪里了,您忘记将关键参数放在 foreach 语句中。

我承认这有点猜测,因为我不知道 $new 中有什么,但它符合逻辑可能性。

if ( $new['items_review'] && is_array( $new['items_review'] )) {

//    foreach ( $new['items_review'] as $review ) {
// replace foreach with this line

    foreach ( $new['items_review'] as $key => $review ) {

        if ( empty( $review['label'] ) ) {
            unset( $new['items_review'][$key] );
        } else {
            $review['value'] = absint( $review['value'] );
            $review['label'] = esc_attr( $review['label'] );
            if ( empty( $review['slug'] )) {
                $review['slug']  = sanitize_title( $review['label'] );
            } else {
                $review['slug']  = sanitize_title( $review['slug'] );
            }
            $review['style'] = esc_attr( $review['style'] );
            $items_review[$i] = $review;
            $i++;
        }
    }   
}