2

我已经尝试过了:

<?php
function checkForOrange($farben) {
     foreach($farben as $element) {
            if(in_array('orange',$element) || in_array('Orange',$element)) {
           return $so;
      }
      return false;
}
}
$so = checkForOrange($farben);
if (!empty($so)) { echo "nothing"; }
if (isset($so)) { echo "daa"; }
?>

但即使我检查 sfefrsefdeas,它也总是返回“daa”。有人可以给我一个工作代码吗?

4

3 回答 3

3

检查多维数组中是否存在值的函数。

函数返回真假,一般都可以使用。

function search_in_array($value, $array) {
     if(in_array($value, $array)) {
          return true;
     }
     foreach($array as $item) {
          if(is_array($item) && search_in_array($value, $item))
               return true;
     }
   return false;
}

工作示例

--------- 编辑 ------------ 根据您的评论和数组示例

function check_in_array($value, $array, $key){
 foreach($array as $item){
  if($item[$key] == $value)
  return true;
  }
 return false;
}

check_in_array('orange', $array, 'FacetValueName');

然后像这样或这样调用它

check_in_array('orange', $array, 'FacetValueName') && check_in_array('Orange', $array, 'FacetValueName') && check_in_array('dark orange', $array, 'FacetValueName')

来一次检查多个值。

工作示例

于 2013-09-18T09:27:37.477 回答
0

这是我用来检查值是否存在于多维数组中的函数。

function is_val_exists($needle, $haystack) {
     if(in_array($needle, $haystack)) {
          return true;
     }
     foreach($haystack as $element) {
          if(is_array($element) && is_val_exists($needle, $element))
               return true;
     }
   return false;
}

你可以像这样使用它:

is_val_exists('your_value', $your_array);

如果 $your_array 中存在 your_value,它将返回 true。

于 2015-03-06T05:44:13.473 回答
0

我就是这么看的。假设您将 in_array 与 foreached 值进行比较,则您将拥有一个多维数组。所以我基本上创建了两个二维数组。一个叫$farben1,第二个叫$farben2。在第一个键'fruits' => 0=> 'Apple', 1=>'Orange', 2=>'Lemon';,而第二个有Melon而不是橙色。所以它不包含“橙色”这个词。

如果您认为您可以比较 $element 的降低值是否为“橙色”,那么我将其分配strtolower()给您的数组 $element。

<?php
function checkForOrange(array $farben) {
     foreach($farben as $element) {
         $bool[] = in_array('orange', array_map('strtolower', $element));
     }
     return in_array(TRUE, $bool);
}

$farben1['animals'] = array('cat', 'Dog', 'Lion');
$farben1['fruits'] = array('Apple', 'Orange', 'Lemon'); //contains
$farben1['flowers'] = array('Roses', 'violets');

echo !checkForOrange($farben1) ? 'nothing' : 'daaa'; // prints daaa

echo "<br /> <br />";

$farben2['animals'] = array('cat', 'Dog', 'Lion');
$farben2['fruits'] = array('Apple', 'Melon', 'Lemon'); //does not contain
$farben2['flowers'] = array('Roses', 'violets');

echo !checkForOrange($farben2) ? 'nothing' : 'daaa'; // prints Nothing

?>
于 2013-09-18T09:29:50.087 回答