将数组array中转到指定的位置下面

将数组array中转到指定的位置下面

public function index(Request $request)
    {
        $dd = [
            110000 => '北京市',
            120000 => '天津市',
            130000 => '河北省',
            140000 => '山西省',
            150000 => '内蒙古自治区',
            210000 => '辽宁省',
            220000 => '吉林省',
            230000 => '黑龙江省',
            310000 => '上海市',
            320000 => '江苏省',
            330000 => '浙江省',
            340000 => '安徽省',
            350000 => '福建省',
            360000 => '江西省',
            370000 => '山东省',
            410000 => '河南省',
            420000 => '湖北省',
            430000 => '湖南省',
            440000 => '广东省',
            450000 => '广西壮族自治区',
            460000 => '海南省',
            500000 => '重庆市',
            510000 => '四川省',
            520000 => '贵州省',
            530000 => '云南省',
            540000 => '西藏自治区',
            610000 => '陕西省',
            620000 => '甘肃省',
            630000 => '青海省',
            640000 => '宁夏回族自治区',
            650000 => '新疆维吾尔自治区',
            710000 => '台湾省',
            810000 => '香港特别行政区',
            820000 => '澳门特别行政区',
            900000 => '海外'
        ];
    $from = $this->arrayNumberKey($dd,'四川省');
    $to = $this->arrayNumberKey($dd,'北京市');
    $new = $this->moveArrayItem($dd,$from,$to);
    dd($new);
    return view('home.index');
}


/**
 * 将数组array中from位置的元素移动到to位置下面
 * 所谓位置从1开始数
 *  $dd = [
        110000 => '北京市',
        120000 => '天津市',
        130000 => '河北省',
        140000 => '山西省',
        150000 => '内蒙古自治区',
        210000 => '辽宁省',
    ];
 * @param array $array
 * @param int $from
 * @param int $to
 * @return array
 */
public function moveArrayItem(array $array, int $from=3,int $to=1)
{
    $data = [];
    $list = [];
    if($array){
        foreach ($array as $k=>$v){
            $list[]=[$k,$v];
        }
    }
    if($list){
        if(!empty($array) && count($array) > $from){
            $from_item[] = $list[$from-1];
            array_splice($list,$to,0,$from_item);
        }

        foreach ($list as $key=>$value){
            $data[$value[0]] = $value[1];
        }
    }

    return $data;
}


/**
 * 获取数组指定的key值
 * @param array $array
 * @param string $name
 * @return int|string
 */
public function arrayNumberKey(array $array,string $name)
{

    $data = [];
    foreach ($array as $key => $value)
    {
        $data[]=[$key,$value];

    }
    foreach ($data as $k=>$v){
        if ($v[1] == $name) {
            return $k+1;
        }
    }

}

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值