我已经尝试过了:
<?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”。 有人可以给我一个工作代码吗?
答案 0 :(得分:3)
检查多维数组中值的存在的函数。
函数返回true或false,一般可以使用它。
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')
一次检查多个值。
答案 1 :(得分:0)
这就是我的看法。假设您正在将in_array与foreached值进行比较,那么您将拥有一个多维数组。所以我基本上创建了两个2d数组。一个叫$ farben1,另一个叫$ farben2。在第一个键'fruits' => 0=> 'Apple', 1=>'Orange', 2=>'Lemon';
中,而第二个键为Melon
而不是橙色。所以它不包含“橙色”这个词。
如果您认为可以比较$ element的降低值是否为'orange',那么我将strtolower()
分配给您的数组$元素。
<?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
?>
答案 2 :(得分: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_value存在于$ your_array中,它将返回true。