PHP開發技巧(三)-多維陣列轉化為一維數組的代碼詳解

來源:互聯網
上載者:User
在平常的項目開發中我們多會用到讓多維陣列轉化為一維數組的情況,但是很多Programmer不會將其進行轉化,也有些沒有想到很好的演算法然後經過亂起八糟的運算方式將其勉強轉化好,但是所寫的程式碼冗餘非常的大,造成程式的時間複雜度以及空間複雜度非常大。下面就講述一下我是如何?這一情況,並且代碼簡單明了。

實現方法:

Ⅰ 使用遞迴調用;
Ⅱ 首先定義一個靜態常數陣列用來儲存結果;
Ⅲ 對多維陣列進行迴圈;
Ⅳ 判斷是否是數組,如果是遞迴調用方法;
Ⅴ 如果不是,將結果放入靜態常數陣列;
Ⅵ 返回結果(靜態常數陣列)。

實現代碼:

<?php    /**  * =======================================  * Created by Zhihua_W.  * Author: Zhihua_W  * Date: 2016/11/28 0003  * Time: 上午 9:11  * Project: PHP開發小技巧  * Power: 實現多維陣列轉化為一維數組  * =======================================  */    /**  * 多維陣列轉化為一維數組  * @param array $array 多維陣列  * @return array $result_array 一維數組  */  function array_multi2single($array)  {      //首先定義一個靜態常數陣列用來儲存結果      static $result_array = array();      //對多維陣列進行迴圈      foreach ($array as $value) {          //判斷是否是數組,如果是遞迴調用方法          if (is_array($value)) {              array_multi2single($value);          } else  //如果不是,將結果放入靜態常數陣列              $result_array [] = $value;      }      //返回結果(靜態常數陣列)      return $result_array;  }    $arr = array(      array(          'name' => 'a',          'sex' => 'm',          'sort' => 5      ),      array(          'name' => 'c',          'sex' => 'm',          'sort' => 8      ),      array(          'name' => 'g',          'sex' => 'm',          'sort' => 3      ),      array(          'name' => 'e',          'sex' => 'w',          'sort' => 6      ),      array(          'name' => 'b',          'sex' => 'w',          'sort' => 2      ),  );    print_r(array_multi2single($arr));    ?>

列印結果,實現多維陣列轉化為一維數組:

Array  (      [0] => a      [1] => m      [2] => 5      [3] => c      [4] => m      [5] => 8      [6] => g      [7] => m      [8] => 3      [9] => e      [10] => w      [11] => 6      [12] => b      [13] => w      [14] => 2  )

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.