带有数组值搜索的php if条件

带有数组值搜索的php if条件,php,arrays,Php,Arrays,我有一个php if条件的问题 我有以下变量和数组: <?php $appartamenti = array("97", "98", "99", "100"); $appartamentinoloft = array("97", "98", "99"); $case = array("103", "104", "107", "108"); $casevacanze = array("109", "110", "111", "112"); $stanze = array("115", "11

我有一个php if条件的问题

我有以下变量和数组:

<?php
$appartamenti = array("97", "98", "99", "100");
$appartamentinoloft = array("97", "98", "99");
$case = array("103", "104", "107", "108");
$casevacanze = array("109", "110", "111", "112");
$stanze = array("115", "116");
$uffici = array("113", "114");
$locali = array("117", "118");
$garage = array("119", "120");
$terreni = array("121", "122");
$cantine = array("123", "124");
$tuttenoterreni = array($appartamenti, $case, $casevacanze, $uffici, $garage, $cantine);
?>

我有一个if条件:

<?php if ( osc_item_category_id() == $terreni) { ?>
<?php echo $custom_field_value['dimensioni-terreni'] ;?> mq
<?php } else if ( osc_item_category_id() == $tuttenoterreni) { ?>
<?php echo $custom_field_value['dimensioni'] ;?> mq
<?php } else { ?>
<?php } ?>

mq
mq
osc\u项目\u类别\u id()是一个数值

但不是工作。 我不明白问题出在哪里…

如果osc_item_category_id()函数返回第121122号用户,请使用此函数进行比较

<?php 
    $in_id = osc_item_category_id();
    if(in_array($in_id,$terreni)){
       echo $custom_field_value['dimensioni-terreni'];
    }
?>

如果osc\u item\u category\u id()函数返回编号121122,则使用此函数进行比较

<?php 
    $in_id = osc_item_category_id();
    if(in_array($in_id,$terreni)){
       echo $custom_field_value['dimensioni-terreni'];
    }
?>

函数的作用是:在数组中搜索特定值

注意:如果搜索参数是字符串且类型参数设置为TRUE,则搜索区分大小写

语法: 在数组中(搜索、数组、类型)

例如:

$people = array("Peter", "Joe", "Glenn", "Cleveland");
if (in_array("Glenn", $people)){
  echo "Match found";
}
函数的作用是:在数组中搜索特定值

注意:如果搜索参数是字符串且类型参数设置为TRUE,则搜索区分大小写

语法: 在数组中(搜索、数组、类型)

例如:

$people = array("Peter", "Joe", "Glenn", "Cleveland");
if (in_array("Glenn", $people)){
  echo "Match found";
}

$terreni
是一维数组,
$tuttenorreni
是多维数组

对于一维数组,请使用函数;对于多维数组,请创建自定义函数以查找此多维数组中的值

我提供了以下代码,它将帮助您在多维数组中查找值。跟随

代码:

<?php 

function in_array_r($needle, $haystack, $strict = false) {
  foreach ($haystack as $item) {
    if (($strict ? $item === $needle : $item == $needle) || (is_array($item) && in_array_r($needle, $item, $strict))) {
      return true;
    }
  }
  return false;
}

if (in_array(osc_item_category_id(),$terreni)) {
  echo $custom_field_value['dimensioni-terreni'] ;
} elseif(in_array_r(osc_item_category_id(), $tuttenoterreni)) {
  echo $custom_field_value['dimensioni'] ;
} else {
  echo "Oops.!! No results found.";
}?>

有用的链接:

<?php 

function in_array_r($needle, $haystack, $strict = false) {
  foreach ($haystack as $item) {
    if (($strict ? $item === $needle : $item == $needle) || (is_array($item) && in_array_r($needle, $item, $strict))) {
      return true;
    }
  }
  return false;
}

if (in_array(osc_item_category_id(),$terreni)) {
  echo $custom_field_value['dimensioni-terreni'] ;
} elseif(in_array_r(osc_item_category_id(), $tuttenoterreni)) {
  echo $custom_field_value['dimensioni'] ;
} else {
  echo "Oops.!! No results found.";
}?>

  • $terreni
    是一维数组,
    $tuttenorreni
    是多维数组

    对于一维数组,请使用函数;对于多维数组,请创建自定义函数以查找此多维数组中的值

    我提供了以下代码,它将帮助您在多维数组中查找值。跟随

    代码:

    <?php 
    
    function in_array_r($needle, $haystack, $strict = false) {
      foreach ($haystack as $item) {
        if (($strict ? $item === $needle : $item == $needle) || (is_array($item) && in_array_r($needle, $item, $strict))) {
          return true;
        }
      }
      return false;
    }
    
    if (in_array(osc_item_category_id(),$terreni)) {
      echo $custom_field_value['dimensioni-terreni'] ;
    } elseif(in_array_r(osc_item_category_id(), $tuttenoterreni)) {
      echo $custom_field_value['dimensioni'] ;
    } else {
      echo "Oops.!! No results found.";
    }?>
    
    
    
    有用的链接:

    <?php 
    
    function in_array_r($needle, $haystack, $strict = false) {
      foreach ($haystack as $item) {
        if (($strict ? $item === $needle : $item == $needle) || (is_array($item) && in_array_r($needle, $item, $strict))) {
          return true;
        }
      }
      return false;
    }
    
    if (in_array(osc_item_category_id(),$terreni)) {
      echo $custom_field_value['dimensioni-terreni'] ;
    } elseif(in_array_r(osc_item_category_id(), $tuttenoterreni)) {
      echo $custom_field_value['dimensioni'] ;
    } else {
      echo "Oops.!! No results found.";
    }?>
    
  • 你不能“直接”检查这个。您正在尝试比较两种类型的变量

    PHP数组是指向“多变量”的指针

    如果我正确阅读了代码,那么函数osc_item_category_id可能会返回一个整数。在这种情况下,第一个if将更改为:

    <?php if (in_array(osc_item_category_id(), $terreni)) { ?>
    
    
    
    您可以在此处查看有关in_数组函数的文档:

    elseif也有类似的问题。您已经创建了一个多维数组(数组数组)。您需要在此处使用array_merge函数(请参阅此处的文档:),以创建一个包含其他数组的所有值的唯一数组。然后,您可以检查第一个示例:

    $tuttenoterreni = array_merge($appartamenti, $case, $casevacanze, $uffici, $garage, $cantine);
    
    <?php } else if (in_array(osc_item_category_id(), $tuttenoterreni)) { ?>
    
    $tuttentenorreni=array\u merge($appartanti、$case、$casevacanze、$uffici、$garage、$cantine);
    
    您不能“直接”检查此项。您正在尝试比较两种类型的变量

    PHP数组是指向“多变量”的指针

    如果我正确阅读了代码,那么函数osc_item_category_id可能会返回一个整数。在这种情况下,第一个if将更改为:

    <?php if (in_array(osc_item_category_id(), $terreni)) { ?>
    
    
    
    您可以在此处查看有关in_数组函数的文档:

    elseif也有类似的问题。您已经创建了一个多维数组(数组数组)。您需要在此处使用array_merge函数(请参阅此处的文档:),以创建一个包含其他数组的所有值的唯一数组。然后,您可以检查第一个示例:

    $tuttenoterreni = array_merge($appartamenti, $case, $casevacanze, $uffici, $garage, $cantine);
    
    <?php } else if (in_array(osc_item_category_id(), $tuttenoterreni)) { ?>
    
    $tuttentenorreni=array\u merge($appartanti、$case、$casevacanze、$uffici、$garage、$cantine);
    
    使用该功能 数组中的布尔值(值,数组)

    如果数组中存在值,则此函数返回true

    因此,在代码中修改if和else if条件的内容,例如:

    if(在数组中(osc\U项目\U类别\U id(),$terreni))

    我在代码中还注意到,在elseif部分,您试图将osc_item_category_id()返回的数值与“array of array”中的值进行比较,而在“if”条件下,您将osc_item_category_id()返回的值与“array”中的值进行比较

    如果这是事实,那么在elseif部分中,您需要运行foreach循环,使用上述“in_array()”方法将“osc_item_category_id()”返回的值与每个数组进行比较

    希望这能帮上忙

    使用该函数 数组中的布尔值(值,数组)

    如果数组中存在值,则此函数返回true

    因此,在代码中修改if和else if条件的内容,例如:

    if(在数组中(osc\U项目\U类别\U id(),$terreni))

    我在代码中还注意到,在elseif部分,您试图将osc_item_category_id()返回的数值与“array of array”中的值进行比较,而在“if”条件下,您将osc_item_category_id()返回的值与“array”中的值进行比较

    如果这是事实,那么在elseif部分中,您需要运行foreach循环,使用上述“in_array()”方法将“osc_item_category_id()”返回的值与每个数组进行比较


    希望这能帮上忙

    osc\u item\u category\u id()返回的是什么?osc\u item\u category\u id()返回的是数组还是简单类型?为什么要将数组与==?返回的是什么?
    osc\u item\u category\u id()
    ?osc\u item\u category\u id()返回97或98或99或100之类的数字……在这种情况下,如果(在数组中(osc\u item\u category\u id(),$YourArray)){..
    osc\u item\u category\u id()返回的是什么?osc\u item\u category\u id()是什么返回数组或只是一个简单类型?以及为什么要将数组与==?返回的是什么
    osc_项_类别_id()
    ?osc_ite_类别_id()返回一个像97或98或99或100这样的数字…在这种情况下,请尝试
    如果(在_数组中(osc_项_类别_id(),$YourArray)){..
    尝试存储数组值,而不使用“”,使它们成为整数而不是字符串。t