if语句-如果在php中的if内部


if statement - If inside if in php

我有这样的代码

foreach($all_meta_for_user as $key=>$val){
  if (array_key_exists ('invoice_company_name', $val) 
      && array_key_exists('invoice_street', $val) 
      && array_key_exists('invoice_street_number', $val) 
      && array_key_exists('invoice_post_code', $val) 
      && array_key_exists('invoice_city', $val) 
      && array_key_exists('invoice_country', $val) 
      && array_key_exists('invoice_nip', $val) ): ?>

我想做的是:&& array_key_exists('invoice_nip', $val)部分应该是"如果"。

我有两种类型的账户——个人账户和公司账户,

因此,当某人是个人用户时,不需要使用nip的最后一个语句。

当某人拥有公司账户时,就需要它。

有什么想法吗?:)

谢谢!

尝试使用类似in_array

$array = array('invoice_company_name','invoice_street','invoice_street_number',...);
if(in_array($val,$array)) {
}

只需在这里做一件事:

将您的最后一个条件更改为

&& ($accType=='individual' || array_key_exists('invoice_nip', $val))

这样,只有当您的$accType不是单独的时,才会检查最后一个条件

$accType='company';
foreach($all_meta_for_user as $key=>$val){
    if (array_key_exists ('invoice_company_name', $val) 
        && array_key_exists('invoice_street', $val) 
        && array_key_exists('invoice_street_number', $val) 
        && array_key_exists('invoice_post_code', $val) 
        && array_key_exists('invoice_city', $val) 
        && array_key_exists('invoice_country', $val) 
        && ($accType=='individual' || array_key_exists('invoice_nip', $val)) ): ?>

我想这就是你想要的?

快乐编码!!!

最好将动态数组作为参数传递给此函数,然后解析

例如,对于公司,类型将是

$typesArr = array('invoice_company_name','invoice_street','invoice_street_number','invoice_post_code','invoice_city','invoice_country','invoice_nip')

对于工业来说,它将像

$typesArr = array('invoice_company_name','invoice_street','invoice_street_number','invoice_post_code','invoice_city','invoice_country')

检查代码:

foreach($all_meta_for_user as $key=>$val){ 
    foreach($typesArr as $type){ 
      if(array_key_exists($type,$val){ 
               // blah blah 
       } 
    } 
}