php - 如何在数组中搜索并取出想要的数据
给我你的怀抱
给我你的怀抱 2017-06-05 11:09:37
[PHP讨论组]

1.比如我有一堆数组如下:

Array
(
    [0] => Array
        (
            [gid] => 1
            [cid] => pc001
            [class] => 办公用品
            [name] => 笔记本电脑
            [type] => Acer Aspire E1-410G
            [unit] => 台
            [num] => 1
            [price] => 
            [amount] => 
            [invoice] => 
            [bremarks] => 
            [bid] => 
        )

    [1] => Array
        (
            [gid] => 2
            [cid] => pc002
            [class] => 办公用品
            [name] => 笔记本电脑
            [type] => Acer Aspire E5-571G-58WT
            [unit] => 台
            [num] => 2
            [price] => 
            [amount] => 
            [invoice] => 
            [bremarks] => 
            [bid] => 
        )

    [2] => Array
        (
            [gid] => 4
            [cid] => wf123
            [class] => 办公用品
            [name] => 鼠标
            [type] => 罗技M90
            [unit] => 个
            [num] => 3
            [price] => 
            [amount] => 
            [invoice] => 
            [bremarks] => 
            [bid] => 
        )

    [3] => Array
        (
            [gid] => 6
            [cid] => wf012
            [class] => 办公用品
            [name] => 电脑键盘
            [type] => PS接口
            [unit] => 个
            [num] => 4
            [price] => 
            [amount] => 
            [invoice] => 
            [bremarks] => 
            [bid] => 
        )

)

2.搜索条件如下:gid等于如下数组

Array
(
    [0] => 3
    [1] => 4
    [2] => 5
)

3.我如何把gid=3,4,5的数据取出来呢?
如上数据应该只有一条符合要求,求大神帮忙~

给我你的怀抱
给我你的怀抱

全部回复(3)
PHP中文网

foreach($arr_1 as $val){

if(in_array($val['gid'],$arr_2)){
    $data[] = $val;    
}

}
print_r($data);

PHPz
 function searchdata($data,$key,$value) {
            $result = array();
            foreach($data as $dval) {
                if(!isset($dval[$key])) {
                    continue;
                }
                if(is_array($value)) {
                    if(in_array($dval[$key], $value)) {
                        $result[] = $dval;
                    }
                } else {
                    if(($dval[$key] == $value)) {
                        $result[] = $dval;
                    }
                }
            }
            searchdata($data,'gid',array(3,4,5));
漂亮男人
$old = array(
    array(
        'gid'=> 1,
        'name'=> 'xx1'
    ),  
    array(
        'gid'=> 2,
        'name'=> 'xx2'
    ),  
    array(
        'gid'=> 4,
        'name'=> 'xx4'
    ),  
    array(
        'gid'=> 6,
        'name'=> 'xx6'
    ),  
);
$exist_gids = array_flip(array_column($old, 'gid'));
$condition_gids = array(3, 4, 5);                                                                                                                                                     
$new = array();
foreach ($condition_gids as $gid) {
    if (isset($exist_gids[$gid])) {
        $new[] = $old[$exist_gids[$gid]];
    }   
}
var_dump($new);
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号