判断二维数组中是否存在列名

问题描述 投票:0回答:2

我在 WordPress 中编写 if 语句时遇到了一些问题。 我的插件将自定义注册字段存储在数据库中的一行中,比如说“custom_fields”。当我使用 get_user_meta 打印 custom_fields 时,我得到了存储在那里的所有信息的数组,例如:

Array (
  [0] => Array (
    [invoice_company_name] => x
    [invoice_nip] => x
    [invoice_street] => x
    [invoice_street_number] => x
    [invoice_post_code] => x
    [invoice_city] => x
    [invoice_country] => x
    [birth_date] => x
    [birth_city] => x
    [district] => x
  )
)

我想检查以发票开头的所有字段是否都存在。当然,“x”在哪里就有实际值。

我发现了函数 in_array(),所以尝试做这样的事情,但它不起作用

$user_ID = get_current_user_id();
$all_meta_for_user = get_user_meta(
    $user_ID,
    'wp_s2member_custom_fields', false
);
print_r($all_meta_for_user);
if (in_array("[invoice_company_name]", $all_meta_for_user)) {
    echo "exist";
} else {
    echo 'dont exist';
}

我得到“不存在”:)出了什么问题? 另外,我可以一次检查所有值吗?像 in_array([1st]&&[2nd]&&[3rd]) 之类的东西?

谢谢!

php arrays wordpress multidimensional-array
2个回答
2
投票

尝试一下

if (in_array("invoice_company_name", $all_meta_for_user[0])) {

1
投票

如果您的数组是多维的,您可以使用 array_key_exists() :

按键搜索
foreach($all_meta_for_user as $key=>$val){
  if (array_key_exists('invoice_company_name', $val)) 
    {
      echo "exist in key ".$key;
    } 
  else 
    {
      echo "does not exist in key ".$key;
    }
}

演示

© www.soinside.com 2019 - 2024. All rights reserved.