如何在PHP数组中寻找价值

时间:2020-04-28 10:17:44

标签: php arrays array-map

我在数组中有一些属性。例如衣服的尺寸。我想检查我是否具有属性。如果不是,我想在文件中显示错误。问题是。为什么即使比较相同的字符串也有错误?

请在下面检查我的代码。

foreach ($attributeToCheck as $singleAttributeToCheck) 
            {
                if(!array_search(strtolower($singleAttributeToCheck), array_map('strtolower', array_column($attributes, 'name')))){            
                    $this->errorLog('*  ERROR   *   There is no:' . $singleAttributeToCheck);
                    return FALSE;
                }                
            }

In $attributeToCheck I have those value:
0: "Black"
1: "S"

In strtolower($singleAttributeToCheck) I have value:
"s"

array_map('strtolower', array_column($attributes, 'name')) looks like this:
0: "s"
1: "m"
2: "l"

为什么我要进入错误日志?我的数组中有字符串“ s”。感谢您的帮助。

亲切的问候

1 个答案:

答案 0 :(得分:1)

array_search()函数找到该值并返回其键,这不是这里所需要的,相反,您必须使用in_array()函数将该值返回给该函数

<?php
function a($v){
    return(strtolower($v));
}
$attributeToCheck  = array("Black","S");
$attributes =   array('s','m','l');
$array = array_map('a',$attributeToCheck);
foreach ($array as $value) {
    if(!in_array($value,$attributes)){
        echo "Not Found<br>";
    }
    else{
        echo "Success";
    }
}
?>

enter image description here

在上述输出中,未找到是检查数组中的黑色的结果,而成功用于检查 S