php – 如果键值存在,则在多维数组中随机取消设置元素
发布时间:2020-05-25 08:51:38 所属栏目:PHP 来源:互联网
导读:我在 PHP中有一个多维数组采用以下形式: $data = array( array(spot=1,name=item_1), array(spot=2,name=item_2), array(spot=1,name=item_3), );
|
我在 PHP中有一个多维数组采用以下形式: $data = array(
array('spot'=>1,'name'=>'item_1'),array('spot'=>2,'name'=>'item_2'),array('spot'=>1,'name'=>'item_3'),);
如果多个数组元素包含“spot”数字的副本,我会想要随机选择一个,并取消设置具有相同“spot”值的所有其他元素.执行此操作的最有效方法是什么?结果数组看起来像: $data = array(
array('spot'=>2,);
将spot的值存储在另一个数组中.使用array_count_values检查哪些值出现多次.找到这些值的键.选择一个随机密钥.从原始阵列中删除除选定键以外的所有键.这是代码:
$data = array(
array('spot'=>1,);
$arr = array();
foreach($data as $val){
$arr[] = $val['spot'];
}
foreach(array_count_values($arr) as $x => $y){
if($y == 1) continue;
$keys = array_keys($arr,$x);
$rand = $keys[array_rand($keys)];
foreach($keys as $key){
if($key == $rand) continue;
unset($data[$key]);
}
} (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
