数组中的 if 语句 - 给定 cart 元和变体 id |伍维格

在具有多个语句的数组中设置 if 语句的最佳做法是什么?

如果 是 使用'variant_id'null'external_variant_id'

像下面的这张图片,或任何其他见解都会有所帮助。

http://img3.mukewang.com/62ec80670001756a06140079.jpg

存在冲突的示例'variant_id' & 'external_variant_id'


  $valued = get_post_meta( $item['data']->get_id(), 'printful_variant_id', true),


  $request['items'] [] = array(


  'variant_id'=> $valued,


  'external_variant_id' => $item['variation_id'] ? $item['variation_id'] : $item['product_id'],

更新来自Barmar答案的完整使用示例


    foreach ( $package['contents'] as $item ) {


    $valued = get_post_meta( $item['data']->get_id(), 'printful_variant_id', true);


    if ($valued) {

        $request['items'] [] = array(

             'variant_id'=> $valued,

            'quantity'            => $item['quantity'],

            'value'               => $item['line_total'] / $item['quantity'],

        );

    }else {

            $request['items'] [] = array(

     'external_variant_id' => $item['variation_id'] ? $item['variation_id'] : $item['product_id'],


            'quantity'            => $item['quantity'],

            'value'               => $item['line_total'] / $item['quantity'],

     );

    }

   }


慕盖茨4494581
浏览 109回答 1
1回答

忽然笑

使用所有公共键单独创建数组,并对不同的部分使用条件赋值。$item = array('quantity'            => $item['quantity'],              'value'               => $item['line_total'] / $item['quantity'],);$valued = get_post_meta( $item['data']->get_id(), 'printful_variant_id', true);if ($valued) {    $item['variant_id'] = $valued;} elseif ($item['variation_id']) {    $item['external_variant_id'] = $item['variation_id'];else {    $item['external_variant_id'] = $item['product_id'];}$request['items'][] = $item;将所有内容全部压缩到数组分配中没有奖励。但是,您可以使用增强的三元运算符来简化最后一个表达式。if ($valued) {    $item['variant_id'] = $valued;} else {    $item['external_variant_id'] = $item['variation_id'] ?: $item['product_id'];}
打开App,查看更多内容
随时随地看视频慕课网APP