将数组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;
}
}
}
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/defc412eab30a3b827ae6cb740ce05db.png)