我有一个数组,每个数组都有一个值。
以下是此示例:
$sales_payload = array(
'organization_id' => $organization_id,
'contact_id' => $contact_id,
'status' => 'Open',
'subject' => $_product->post_title." ".str_replace($strToRemove, "", $_POST['billing_myfield12']),
'start_date' => date("Y-m-d"), // set start date on today
'expected_closing_date' => date("Y-m-d",strtotime(date("Y-m-d")."+ 14 days")), // set expected closing date 2 weeks from now
'chance_to_score' => '10%',
'expected_revenue' => 0, //set the expected revenue
'note' => $_POST['order_comments'],
'progress' => array(
'id'=>'salesprogress:200a53bf6d2bbbfe' //fill a valid salesprogress id to set proper sales progress
),
"custom_fields"=> [[
if(strpos($_POST['billing_myfield13'], 'ja') !== false) { [["actief_in_duitsland"=>1]] }
]]
);
我现在正试图在我的代码中填充某个数组:
"custom_fields"=> [["actief_in_duitsland"=>1]]
这很有效。唯一的问题是我希望在特定条件下值为>> 1。
这种情况是,如果某个POST请求包含某个字符串,则将值=> 1
我试过了:
"custom_fields"=> [[
if(strpos($_POST['billing_myfield13'], 'ja') !== false) { [["actief_in_duitsland"=>1]] }
]]
所以
if(strpos($_POST['billing_myfield13'], 'ja') !== false) { [["actief_in_duitsland"=>1]] }
如果$_POST['billing_myfield13']
包含单词'ja'
然后[["actief_in_duitsland"=>1]]
答案 0 :(得分:3)
您可以使用三元条件,这是if
语句的快捷方式。以下是三元条件如何工作的示例:
常规if会这样写:
if( "mycondition" == 1 )
{
$boolean = true;
}
else {
$boolean = false;
}
具有三元条件的此语句的等效内容将如下所示:
$boolean = ( "mycondition" == 1 ) ? true : false;
您可能希望使用此快捷方式实现数组,如下所示:
$sales_payload = [
// ...
'custom_fields' => ( strpos($_POST['billing_myfield13'], 'ja') !== false ) ? [['actief_duitsland' => 1]] : [['actief_duitsland' => '???']],
// ...
];
警告强>
您还应为此声明定义else
值。
答案 1 :(得分:2)
如果数组中的语句不起作用,您可以尝试以下代码
$actief_in_duitsland = (strpos($_POST['billing_myfield13'], 'ja') !== false) ? 1 : 0;
$sales_payload = array(
'organization_id' => $organization_id,
'contact_id' => $contact_id,
'status' => 'Open',
'subject' => $_product->post_title." ".str_replace($strToRemove, "", $_POST['billing_myfield12']),
'start_date' => date("Y-m-d"), // set start date on today
'expected_closing_date' => date("Y-m-d",strtotime(date("Y-m-d")."+ 14 days")), // set expected closing date 2 weeks from now
'chance_to_score' => '10%',
'expected_revenue' => 0, //set the expected revenue
'note' => $_POST['order_comments'],
'progress' => array(
'id'=>'salesprogress:200a53bf6d2bbbfe' //fill a valid salesprogress id to set proper sales progress
),
"custom_fields"=> [['actief_in_duitsland' => $actief_in_duitsland]]
);