繁体   English   中英

使用此数组在PHP中映射数组

[英]Mapping an array in PHP with this array

我有如下数组

$arr['fixed_key'][0]['key1']['key2'] = 'y';
$arr['fixed_key'][1]['key1']['key2'] = 'y';
$arr['fixed_key'][2]['key1']['key2'] = 'n';
$arr['fixed_key'][3]['key1']['key2'] = 'n';

我想删除所有具有key2 ='n'的数组,我可以循环遍历数组并实现此目的,如下所示:

$l=length($arr);
for($i=0;$i<$l;$i++) {

    if($arr['fixed_key'][$i]['key1']['key2'] == 'n') {

        unset($arr['fixed_key'][$i]['key1']['key2']);

    }

}

我的问题是,是否有可能以更好的方式(例如array_map或array_walk)做到这一点,最佳方法是什么?

您可以使用array_filter

$arr['fixed_key'][0]['key1']['key2'] = 'y';
$arr['fixed_key'][1]['key1']['key2'] = 'y';
$arr['fixed_key'][2]['key1']['key2'] = 'n';
$arr['fixed_key'][3]['key1']['key2'] = 'n';

$filtered = array_filter($arr['fixed_key'], function ($val) { return $val['key1']['key2']  !== "n"; });

我们可以通过使用array_search()来实现并取消设置,请尝试以下操作:

if(($key = array_search($del_value, $arr)) !== false) {
        unset($arr[$key]);
 }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM