• php将数组中某个元素置顶设为第一个元素


    一个数组$a0有N个元素,要将其中第3个元素,排在数组的首位。

    第一种做法是:

    取出第3个元素,赋值给变量$a

    unset 第3个元素

    array_unshift 将$a添加到数组头部。

    如果是数字下标的数组,这样是可以的。可如果是字符串做为下标,array_unshift会破坏下标,都变成了数字,以0开始计数。

    解决方案为:

    取出第3个元素,定义成一个单一数组 $a1

    unset第3个元素,更新数组$a0

    array_merge($a1,$a0)。

    使用 array_merge 不会破坏数组下标。

    示例:

    <?php
    $array1 = array (
      0 => 
      array (
        'top' => 'true',
        'path' => 'cPath=9',
        'current' => false,
        'name' => 'Women',
        'image' => NULL,
        'has_sub_cat' => true,
      ),
      1 => 
      array (
        'top' => 'true',
        'path' => 'cPath=10',
        'current' => false,
        'name' => 'Men',
        'image' => NULL,
        'has_sub_cat' => false,
      ),
      2 => 
      array (
        'top' => 'true',
        'path' => 'cPath=1',
        'current' => false,
        'name' => 'Accessories',
        'image' => '',
        'has_sub_cat' => false,
      ),
      3 => 
      array (
        'top' => 'true',
        'path' => 'cPath=2',
        'current' => false,
        'name' => 'New Arrival',
        'image' => '',
        'has_sub_cat' => false,
      ),
      4 => 
      array (
        'top' => 'true',
        'path' => 'cPath=4',
        'current' => true,
        'name' => 'Styles',
        'image' => '',
        'has_sub_cat' => true,
      ),
      5 => 
      array (
        'top' => 'false',
        'path' => 'cPath=4_5',
        'current' => false,
        'name' => 'Basketball Shoes',
        'image' => '',
        'has_sub_cat' => false,
      ),
      6 => 
      array (
        'top' => 'false',
        'path' => 'cPath=4_6',
        'current' => false,
        'name' => 'Football Shoes',
        'image' => '',
        'has_sub_cat' => false,
      ),
      7 => 
      array (
        'top' => 'false',
        'path' => 'cPath=4_7',
        'current' => true,
        'name' => 'Tennis Shoes',
        'image' => '',
        'has_sub_cat' => false,
      )
    );
    var_export($array1);
    echo "<br /><br /><br />
    
    ";
    
    $temp_array = array();
    global $temp_array,$rootcid;
    foreach($array1 as $k=>$v){
        if($v['current'] == true){
            $rootcids = explode('_', str_replace('cPath=', '', $v['path']));
            $rootcid = $rootcids[0];
            break;        
        }
    }
    
    foreach($array1 as $k=>$v){
        $ifrootcid = explode('_', str_replace('cPath=', '', $v['path']));
        if($rootcid==$ifrootcid[0]){
            $temp_array[] = $v;
            unset($array1[$k]);        
        }
    }
    //$array1 = array_values($array1);
    var_export($array1);
    echo "<br /><br /><br />
    
    ";
    //var_export($temp_array);
    $array1 = array_merge($temp_array, $array1);
    var_export($array1);
    ?>

    补充:

    //array_splice也是个不错的选择

    <?php
    $arr = array(
    'key1' => 'a',
    'key2' => 'b',
    'key3' => 'c'
    );
    $item = $arr['key3'];
    unset($arr['key3']);
    array_splice($arr, 0, 0, $item);
    var_export($arr);
    ?>

    打完收工。

    转载请注明出处!小鱼阁工作室 -专注zencart建站,织梦企业建站,ecshop商城,二次开发,产品采集,模板修改!技术QQ 631992791
  • 相关阅读:
    Swift相比OC语言有哪些优点
    Swift实战技巧
    Swift 并行编程现状和展望
    Swift设置只读(readOnly)属性
    Swift零基础教程2019最新版(一)搭建开发环境
    中文版 Apple 官方 Swift 教程《The Swift Programming Language》
    一个中文的苹果开发站
    simulink创建简单模型
    Simulink 产品说明
    matlab中的实时音频
  • 原文地址:https://www.cnblogs.com/afish/p/4017645.html
Copyright © 2020-2023  润新知