php 代碼最佳化之經典樣本

來源:互聯網
上載者:User

我用的方法是按key區分塊,然後在將塊賦給其他的變數,然後再進行一些操作,這樣用到了很多的for和foreach,而且代碼量也很大,所以被退回來了。

經過上面的指導,發現真的好簡單,現在與大家一同分享。

ID FIELD1 FIELD2 FIELD3 FIELD4 Key
1 *** *** *** *** meat1
2 *** *** *** *** meat1
3 *** *** *** *** meat1
4 *** *** *** *** meat1
5 *** *** *** *** fruit2
6 *** *** *** *** fruit2
7 *** *** *** *** fruit2
8 *** *** *** *** fruit2
9 *** *** *** *** fruit2
10 *** *** *** *** food3
11 *** *** *** *** food3

現在有如上所示的結果

要求:要對這個已經按key進行排序了的數組進行操作,相同key的項進行處理。

提示:這個是很典型的母子表的結構,也就是說其實它是兩張表的合并,可以這樣處理成兩個數組,方便數組裡面對塊的操作
array1:ID|Key

ID Key
1 meat1
2 meat1
3 meat1
4 meat1
5 fruit2
6 fruit2
7 fruit2
8 fruit2
9 fruit2
10 food3
11 food3

array2:key => array(ID,FIELD1,FIELD2,FIELD3,FIELD4,FIELD5,Key)

ID FIELD1 FIELD2 FIELD3 FIELD4 Key
meat1=> 1 *** *** *** *** meat1
2 *** *** *** *** meat1
3 *** *** *** *** meat1
4 *** *** *** *** meat1
fruit2=> 5 *** *** *** *** fruit2
6 *** *** *** *** fruit2
7 *** *** *** *** fruit2
8 *** *** *** *** fruit2
9 *** *** *** *** fruit2
food3=> 10 *** *** *** *** food3
11 *** *** *** *** food3

實現如上數組分離代碼

這樣後,訪問tempArray的塊資料就非常方便了

foreach($tempArray as $row){

  array1[$row['ID']] = $row['Key'];

  array2[$row['Key']][] = $row;

}

訪問和處理代碼

foreach($array1 as $ID => $Key){

  $this->doSomeThing($ID);

  //訪問tempArray的塊數組$array2[$Key]

  $this->doSomeThing2($array2[$Key]);

}

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.