doubeng3216 2015-02-27 15:03
浏览 29
已采纳

从特定位置重新排序阵列或打印

If I have the following array:

$array = array(
"01" => "0",
"02" => "0",
"03" => "0",
"04" => "0",
"05" => "0",
"06" => "0",
"07" => "0",
"08" => "0",
"09" => "0",
"10" => "0",
"11" => "0",
"12" => "0"
);

how can I order it to be like:

$array = array(
"05" => "0",
"06" => "0",
"07" => "0",
"08" => "0",
"09" => "0",
"10" => "0",
"11" => "0",
"12" => "0",
"01" => "0",
"02" => "0",
"03" => "0",
"04" => "0"
);

Or even better how to echo every value starting at a specific key and going back if needed?

EDIT

I ended up working it in a different way.

$first_value = 05;

$where_to_slice = $first_value + 0; // this is just to remove any leading 0 because the $first_value was being retrieved from a DB as 05.

$array_owner_data_1 =(array_slice($array_owner_data, $where_to_slice));
$array_owner_data_2 =(array_slice($array_owner_data, 0,$where_to_slice));

echo implode(", ", $array_owner_data_1);
echo ",";
echo implode(", ", $array_owner_data_2);

So now if I print both slices in succession I get the data ordered as I wanted.

  • 写回答

4条回答 默认 最新

  • dongzhong5967 2015-02-27 15:30
    关注

    Here a rotate function, you can't use array_shift, keys will be changed.

    <?php 
    
    $array = array( 
        "01" => "0", 
        "02" => "0", 
        "03" => "0", 
        "04" => "0", 
        "05" => "0", 
        "06" => "0", 
        "07" => "0", 
        "08" => "0", 
        "09" => "0", 
        "10" => "0", 
        "11" => "0", 
        "12" => "0" 
    ); 
    
    var_dump($array); 
    
    function rotate(&$a) { 
        reset($a); 
        $value = current( $a ); 
        $key   = key( $a ); 
        unset( $a[ $key ]); 
        $a[$key] = $value; 
    } 
    for ($i = 0; $i < 4; $i++) { 
        rotate($array); 
    } 
    var_dump($array); 
    ?> 
    

    output:

    array(12) {
      ["01"]=>
      string(1) "0"
      ["02"]=>
      string(1) "0"
      ["03"]=>
      string(1) "0"
      ["04"]=>
      string(1) "0"
      ["05"]=>
      string(1) "0"
      ["06"]=>
      string(1) "0"
      ["07"]=>
      string(1) "0"
      ["08"]=>
      string(1) "0"
      ["09"]=>
      string(1) "0"
      [10]=>
      string(1) "0"
      [11]=>
      string(1) "0"
      [12]=>
      string(1) "0"
    }
    array(12) {
      ["05"]=>
      string(1) "0"
      ["06"]=>
      string(1) "0"
      ["07"]=>
      string(1) "0"
      ["08"]=>
      string(1) "0"
      ["09"]=>
      string(1) "0"
      [10]=>
      string(1) "0"
      [11]=>
      string(1) "0"
      [12]=>
      string(1) "0"
      ["01"]=>
      string(1) "0"
      ["02"]=>
      string(1) "0"
      ["03"]=>
      string(1) "0"
      ["04"]=>
      string(1) "0"
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥15 nginx中的CORS策略应该如何配置
  • ¥30 信号与系统实验:采样定理分析
  • ¥100 我想找人帮我写Python 的股票分析代码,有意请加mathtao
  • ¥20 Vite 打包的 Vue3 组件库,图标无法显示
  • ¥15 php 同步电商平台多个店铺增量订单和订单状态
  • ¥15 关于logstash转发日志时发生的部分内容丢失问题
  • ¥17 pro*C预编译“闪回查询”报错SCN不能识别
  • ¥15 微信会员卡接入微信支付商户号收款
  • ¥15 如何获取烟草零售终端数据
  • ¥15 数学建模招标中位数问题