2016-11-23 8 views
1

私は配列を持っています、各配列には値があります。ここで配列内のステートメントは?

はその一例です:

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

私は今、この1私のコード内の特定の配列を埋めるためにしようとしています:

"custom_fields"=> [["actief_in_duitsland"=>1]] 

これは動作します。唯一のことは、ある条件で値が=> 1になりたいということです。 この条件は、特定のPOSTリクエストが特定の文字列が含まれている場合は、値=> 1

私はこの試みた作りです:$_POST['billing_myfield13']は、単語「JA」が含まれている場合

"custom_fields"=> [[ 
if(strpos($_POST['billing_myfield13'], 'ja') !== false) { [["actief_in_duitsland"=>1]] } 
]] 

ので

if(strpos($_POST['billing_myfield13'], 'ja') !== false) { [["actief_in_duitsland"=>1]] } 

[["actief_in_duitsland"=>1]]

+0

いいえ、配列定義内に 'if'文を書くことはできません。しかしながら、それらが適切かどうかは別の問題ですが、三項を使うこともできます。 –

+0

か、比較結果のブール値を割り当てることができます –

答えて

3

を試すことができ声明場合。ここではどのように三条件の作品の例です:

定期このように書かれることになる場合:

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

配列が動作しないはずの内部で、あなたはあなたがif文のショートカットで三条件を、使用することができます次のコード

$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]] 
); 
関連する問題