Parse error: syntax error, unexpected 'if' (T_IF), expecting ')'

Parse error: syntax error, unexpected 'if' (T_IF), expecting ')'

如何在 php 数组中添加条件?

这是数组

$content['custom_fields'] = array(
    array( "key" => "_yoast_wpseo_focuskw", "value" => $_POST["title"] ),
    array( "key" => "_yoast_wpseo_metadesc", "value" => $_POST["titleenfa"] ),
    array( "key" => "_yoast_wpseo_metakeywords", "value" => $_POST["metakey"] ),
    if($_POST["link128"]){
        array( "key" => "_link128", "value" => "field_54b398292c295" ),
        array( "key" => "link128", "value" => $_POST["link128"] ),
    }
    if($_POST["link256"]){
        array( "key" => "_link256", "value" => "field_54b398092c294" ),
        array( "key" => "link256", "value" => $_POST["link256"] ),
    }
    if($_POST["link320"]){          
        array( "key" => "_link320", "value" => "field_54b3965495d27" ),
        array( "key" => "link320", "value" => $_POST["link320"] ),
    }
    array( "key" => "country", "value" => "USA" )
); 

但是我得到 PHP 解析错误,为什么我可以在数组中添加一个条件,发生了什么??:

Parse error: syntax error, unexpected 'if' (T_IF), expecting ')'

您不能在数组声明中编写 if 语句,但您可以使用 ternary 运算符,如下所示:

(在这里您可以选择任何一种方式输入)

array( "key" => "link128", "value" => (!empty($_POST["link128"])?$_POST["link128"]:"") )

或者您可以像这样使用 array_push()

将一个或多个元素推到数组末尾的地方

if($_POST["link128"])
    array_push($array, $_POST["link128"]);

尝试像下面这样修改你的数组代码......

$custom_array = array(
    array( "key" => "_yoast_wpseo_focuskw", "value" => $_POST["title"] ),
    array( "key" => "_yoast_wpseo_metadesc", "value" => $_POST["titleenfa"] ),
    array( "key" => "_yoast_wpseo_metakeywords", "value" => $_POST["metakey"]     
)); 
if($_POST["link128"]){
   $custom_array = array_merge($custom_array,array(
        array( "key" => "_link128", "value" => "field_54b398292c295" ),
        array( "key" => "link128", "value" => $_POST["link128"] ),
     ));
}
if($_POST["link256"]){
   $custom_array = array_merge($custom_array,array(
        array( "key" => "_link256", "value" => "field_54b398092c294" ),
        array( "key" => "link256", "value" => $_POST["link256"] ),
   ));
 }
if($_POST["link320"]){
   $custom_array = array_merge($custom_array,array(
       array( "key" => "_link320", "value" => "field_54b3965495d27" ),
        array( "key" => "link320", "value" => $_POST["link320"] ),
    ));

}

//And finally
$content['custom_fields'] = array_merge($custom_array,array(
   array( "key" => "country", "value" => "USA" )
));

你也可以这样写:

$x = array();

$x[] = array( "key" => "_yoast_wpseo_focuskw", "value" => $_POST["title"] );
$x[] = array( "key" => "_yoast_wpseo_metadesc", "value" => $_POST["titleenfa"] );
$x[] = array( "key" => "_yoast_wpseo_metakeywords", "value" => $_POST["metakey"] );

if($_POST["link128"]){
    $x[] = array( "key" => "_link128", "value" => "field_54b398292c295" );
    $x[] = array( "key" => "link128", "value" => $_POST["link128"] );
}
if($_POST["link256"]){
    $x[] = array( "key" => "_link256", "value" => "field_54b398092c294" );
    $x[] = array( "key" => "link256", "value" => $_POST["link256"] );
}
if($_POST["link320"]){          
    $x[] = array( "key" => "_link320", "value" => "field_54b3965495d27" );
    $x[] = array( "key" => "link320", "value" => $_POST["link320"] );
}

$x[] = array( "key" => "country", "value" => "USA" )

$content['custom_fields'] = $x;

$x[] = $y表示"push $y onto the end of the array $x."

谢谢大家

        $content['custom_fields'] = array(
        array( "key" => "_yoast_wpseo_focuskw", "value" => $_POST["title"] ),
        array( "key" => "_yoast_wpseo_metadesc", "value" => $_POST["titleenfa"] ),
        array( "key" => "_yoast_wpseo_metakeywords", "value" => $_POST["metakey"] )
        );
        if($_POST["link128"]){
            array_push($content['custom_fields'], array( "key" => "_link128", "value" => "field_54b398292c295" ) );
            array_push($content['custom_fields'], array( "key" => "link128", "value" => $_POST["link128"] ) );
        }       
        if($_POST["link256"]){
            array_push($content['custom_fields'], array( "key" => "_link256", "value" => "field_54b398092c294" ) );
            array_push($content['custom_fields'], array( "key" => "link256", "value" => $_POST["link256"] ) );
        }   
        if($_POST["link320"]){
            array_push($content['custom_fields'], array( "key" => "_link320", "value" => "field_54b3965495d27" ) );
            array_push($content['custom_fields'], array( "key" => "link320", "value" => $_POST["link320"] ) );
        }