加入收藏 | 设为首页 | 会员中心 | 我要投稿 安卓应用网 (https://www.0791zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > PHP > 正文

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]);
    }
}

(编辑:安卓应用网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读