服务器之家:专注于服务器技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|

服务器之家 - 编程语言 - PHP教程 - php 代码优化之经典示例

php 代码优化之经典示例

2019-11-20 14:20PHP教程网 PHP教程

今天碰到了这么一个问题,处理的数组$tempArray为如下所示形式(key已经排序),然后要根据这个结果进行分块的处理

我用的方法是按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]);

}

延伸 · 阅读

精彩推荐