Ошибка разбора: синтаксическая ошибка, неожиданное «если» (T_IF), ожидание «)»

Как я могу добавить условие в массиве 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, почему я могу добавить условие в массив, что случилось ??:

Ошибка разбора: синтаксическая ошибка, неожиданное «если» (T_IF), ожидание «)»

-2

Решение

Вы не можете написать оператор if в объявлении массива, но вы можете использовать троичный Оператор, как это:

(Здесь у вас будет в любом случае запись)

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

ИЛИ вы можете использовать array_push() как это:

Где он толкает один или несколько элементов в конец вашего массива

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

Другие решения

Попробуйте изменить код массива следующим образом …..

$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" )
));
0

Спасибо всем

        $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"] ) );
}
0

Вы также можете написать это как:

$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 означает «толкать $y на конец массива $x«.

0
По вопросам рекламы ammmcru@yandex.ru
Adblock
detector