我想用数组搜索到php的预览值类似,但结果没什么
function search($array, $key, $value){
$results = array();
if (is_array($array)) {
if (isset($array[$key]) && $array[$key] == $value) {
$results[] = $array;
}
foreach ($array as $subarray) {
$results = array_merge($results, search($subarray, $key,$value));
}
}
return $results;
}
$arr = array(0 => array('id'=>1,'title'=>"امروز یکشنبه است",),
1 => array('id'=>2,'title'=>"فردا یکشنبه است"),
2 => array('id'=>3,'title'=>"دیروز یکشنبه بود"));
$matches = search($arr, 'title', 'یکشنبه');
foreach($matches as $key=>$_search){
echo $_search['id'];
}
结果=没有
答案 0 :(得分:0)
使用in_array
功能如下。
in_array($array, $string)
in_array的输出是布尔值。
答案 1 :(得分:0)
یکشنبه
是标题值的子字符串,但是您进行了相等比较。您应该进行扫描,以查看字符串是否存在于另一个内部。即使用strpos进行比较
strpos($array[$key], $value) > -1
答案 2 :(得分:-1)
function search($array, $key, $value){
$results = array();
if (is_array($array)) {
if (isset($array[$key]) && $array[$key] == strpos($array[$key], $value) > -1) {
$results[] = $array;
}
foreach ($array as $subarray) {
$results = array_merge($results, search($subarray, $key,$value));
}
}
return $results;
}
$arr = array(0 => array('id'=>1,'title'=>"امروز یکشنبه است",),
1 => array('id'=>2,'title'=>"فردا یکشنبه است"),
2 => array('id'=>3,'title'=>"دیروز یکشنبه بود"));
$matches = search($arr, 'title', 'یکشنبه');
foreach($matches as $key=>$_search){
echo $_search['id'];
}