Php 检查对象是否包含与字符串匹配的属性
如何检查对象是否具有包含字符串“color”的属性 我尝试使用array_diff_key和array_filter,但我不能使用array_filter_use_key,因为它在PHP5.4上运行Php 检查对象是否包含与字符串匹配的属性,php,Php,如何检查对象是否具有包含字符串“color”的属性 我尝试使用array_diff_key和array_filter,但我不能使用array_filter_use_key,因为它在PHP5.4上运行 如果可能,请不要循环:)这应该适合您: (在这里,我只是将对象强制转换为一个数组,并在中使用进行搜索。然后我只需使用将数组翻转回来) 输出: $result = array_flip(preg_grep("/\bcolor/", array_keys((array)$o))); print_r($r
如果可能,请不要循环:)这应该适合您: (在这里,我只是将对象强制转换为一个数组,并在中使用进行搜索。然后我只需使用将数组翻转回来) 输出:
$result = array_flip(preg_grep("/\bcolor/", array_keys((array)$o)));
print_r($result);
如果你只想用它来检查真或假,比如in_array(),你不需要把它翻回去,你可以这样简单地使用它:
Array ( [color_a] => 2 [color_b] => 3 )
无正则表达式解决方案:
function isKeyExists($key,$array){
$arr = preg_grep('/.*'.$key.'.*/',array_keys($array));
if(count($arr)){
return true;
}
return false;
}
$arr = Array('id'=>'11','type'=>5,'color_a'=>57,'color_b'=>3,'date'=>2);
isKeyExists('color_',$arr); // return boolean if exists or not
可能的重复:
if(preg_grep("/\bcolor/", array_keys((array)$o)))
echo "match";
function isKeyExists($key,$array){
$arr = preg_grep('/.*'.$key.'.*/',array_keys($array));
if(count($arr)){
return true;
}
return false;
}
$arr = Array('id'=>'11','type'=>5,'color_a'=>57,'color_b'=>3,'date'=>2);
isKeyExists('color_',$arr); // return boolean if exists or not
$std = new StdClass();
$std->id = 11;
$std->type = 5;
$std->color_a = 57;
$std->color_b = 3;
$std->date = 2;
$result = array();
$searchFor = 'color';
array_map(function($value) use(&$result, $searchFor){
if(strpos($value, $searchFor) !== false){
$result[] = $value;
}
}, array_keys((array)$std));
var_dump(count($result));