Php 从多数组中筛选多个值
我的数组如下所示:Php 从多数组中筛选多个值,php,arrays,multidimensional-array,Php,Arrays,Multidimensional Array,我的数组如下所示: $myArray = array( array( 'uid' => '100', 'name' => 'Michael', 'pic_square' => 'urs121' ), array( 'uid' => '200', 'name' => 'machavent', 'pic_square' => 'urs222'
$myArray = array(
array(
'uid' => '100',
'name' => 'Michael',
'pic_square' => 'urs121'
),
array(
'uid' => '200',
'name' => 'machavent',
'pic_square' => 'urs222'
),
array(
'uid' => '300',
'name' => 'Ayem',
'pic_square' => 'urs333'
),
array(
'uid' => '400',
'name' => 'Bucin',
'pic_square' => 'urs444'
),
array(
'uid' => '500',
'name' => 'Bangcad',
'pic_square' => 'urs555'
)
);
这是我的职责:
function filterElement($array, $key, $value){
foreach($array as $subKey => $subArray){
if($subArray[$key] != $value){
unset($array[$subKey]);
}
}
return $array;
}
如果我只需要从uid=100获取数据,那么这工作正常
$mydata = '100';
$array = filterElement($myArray, "uid", $mydata);
我的结果
但是,如果我想从uid=[100300]获取数据,该怎么办呢
我正试着这样打电话
$mydata = ['100','300'];
$array = filterElement($myArray, "uid", $mydata);
并将我的函数改为
function filterElement($array, $key, $value){
foreach($array as $subKey => $subArray){
for($i=0;$i<count($value);$i++){
if($subArray[$key] != $value[$i]){
unset($array[$subKey]);
}
}
}
return $array;
}
因此,我的问题是如何使用多维数组中的多值筛选数据。使用
数组\u筛选功能:
函数filterElement($array,$key,$value){
如果(!is_数组($value))$value=[$value];
返回数组\过滤器($array,function($item)use($key,$value){
返回数组($item[$key],$value);
});
}
//用法:
$array=filterElement($myArray,“uid”,“100”);
$array=filterElement($myArray,“uid”['100','300']);
array(0) {
}