我在数组中有一些属性。例如衣服的尺寸。我想检查我是否具有属性。如果不是,我想在文件中显示错误。问题是。为什么即使比较相同的字符串也有错误?
请在下面检查我的代码。
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”。感谢您的帮助。
亲切的问候
答案 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";
}
}
?>
在上述输出中,未找到是检查数组中的黑色的结果,而成功用于检查 S 。