一、单一条件查询(==)

在数组中数据中,通过查询条件得出想要的数组

<meta charset="utf-8">

<?php
$ar = array(
2 => array(
'catid' => 2,
'catdir' => 'notice',
),
5 => array(
'catid' => 5,
'catdir' => 'subject',
),
6=> array(
'catid' => 6,
'catdir' => 'news'
),
);

$catdir_so = "subject";
$r = array_filter($ar, function($t) use ($catdir_so) { return $t['catdir'] == $catdir_so; });
print_r($r);
?>

二、时间段查询(查个时间段内的数据)

在数组中数据中,通过查询条件得出想要的数组

查询某个时间段范围内的数据

<meta charset="utf-8">

<?php
$ar = array(
2 => array(
'catid' => '6',
'catdir' => '1522332388000',//2018-03-29 22:06:28
),
6=> array(
'catid' => '5',
'catdir' => '1522329351000'//2018-03-29 21:15:51
),
7=> array(
'catid' => '4',
'catdir' => '1522328237000'//2018-03-29 20:56:15
),
9=> array(
'catid' => '3',
'catdir' => '1522327772000'//2018-03-29 20:49:32
),
10=> array(
'catid' => '2',
'catdir' => '1522325351000'//2018-03-29 20:09:11
),
5 => array(
'catid' => '1',
'catdir' => '1522323606000',//2018-03-29 19:40:06
),

);

$catdir_so1 = "1522325351000";//2018-03-29 20:09:11 2
$catdir_so2 = "1522329351000";//2018-03-29 21:15:51 5
$r = array_filter($ar, function($t) use ($catdir_so1,$catdir_so2) { return $t['catdir'] > $catdir_so1 and $t['catdir'] < $catdir_so2 ; });
print_r($r);

//echo strtotime("2018-03-29 21:15:51");
?>

$r = array_filter($ar, function($t) use ($catdir_so1,$catdir_so2) { return $t['catdir'] > $catdir_so1 and $t['catdir'] < $catdir_so2 ; });

 

 

三、时间段查询再加一个条件(相当案例一加上案例二)

<meta charset="utf-8">

<?php
$ar = array(
2 => array(
'catid' => '6',
'cat' => 'dd',
'catdir' => '1522332388000',//2018-03-29 22:06:28
),
6=> array(
'catid' => '5',
'cat' => 'dd',
'catdir' => '1522329351000'//2018-03-29 21:15:51
),
7=> array(
'catid' => '4',
'cat' => 'ddfgd',
'catdir' => '1522328237000'//2018-03-29 20:56:15
),
9=> array(
'catid' => '3',
'cat' => 'dd',
'catdir' => '1522327772000'//2018-03-29 20:49:32
),
10=> array(
'catid' => '2',
'cat' => 'dvvd',
'catdir' => '1522325351000'//2018-03-29 20:09:11
),
5 => array(
'catid' => '1',
'cat' => 'ddfgd',
'catdir' => '1522323606000',//2018-03-29 19:40:06
),

);

$catdir_so1 = "1522325351000";//2018-03-29 20:09:11 2
$catdir_so2 = "1522329351000";//2018-03-29 21:15:51 5
$catdir_so3 = "dd";
$r = array_filter($ar, function($t) use ($catdir_so1,$catdir_so2,$catdir_so3) { return $t['cat'] == $catdir_so3 and ($t['catdir'] > $catdir_so1 and $t['catdir'] < $catdir_so2); });
print_r($r);

//echo strtotime("2018-03-29 21:15:51");
?>

$r = array_filter($ar, function($t) use ($catdir_so1,$catdir_so2,$catdir_so3) { return $t['cat'] == $catdir_so3 and ($t['catdir'] > $catdir_so1 and $t['catdir'] < $catdir_so2); });
 

 

四、在数组查询条件是否在数组中

$type_mold_arr=array('1','2');//1=直播
$rsoc = array_values(array_filter($rsoc2, function($t) use ($pid,$type_mold_arr) { return $t['pid'] == $pid and in_array($t['type_mold'],$type_mold_arr)==true; }));//0=只取一组数组(也只取第一组)

 

五、数组模糊查询

  $a=array(
'0' => array('id'=>1,'pid'=>0,'name'=>'水果'),
'1' => array('id'=>2,'pid'=>0,'name'=>'蔬菜'),
'2' => array('id'=>3,'pid'=>1,'name'=>'食品'),
'3' => array('id'=>4,'pid'=>2,'name'=>'运动'),
'4' => array('id'=>5,'pid'=>1,'name'=>'电脑'),
'5' => array('id'=>6,'pid'=>'香果','name'=>'香蕉'),
'6' => array('id'=>7,'pid'=>4,'name'=>'牛奶'),
'7' => array('id'=>8,'pid'=>5,'name'=>'西瓜'),
'8' => array('id'=>9,'pid'=>7,'name'=>'苹果'),
);
$arr=$result=array();
foreach ($a as $key => $value) {
foreach ($value as $valu) {
if(strstr($valu, '果') !== false){
array_push($arr, $key);
}
}
}
foreach ($arr as $key => $value) {
if(array_key_exists($value,$a)){
array_push($result, $a[$value]);
}
}
var_dump( $result);

、、​