PHP array_filter和array_merge的使用

$resource_child_list为数组即:如下(精简部分字段)

0=>array

'id'=>'ro1504237694PreO

format_code'=>string'WORD,PDF'

1=>array

'id'=>string'ro15042376942xhS

'format_code'=>string'WORD,PDF'

2=>array

'id'=>string'ro15042376949HLh

'format_code'=>string'ZIP''

。。。。。。。

在model里面中取值时可以order by format_code DESC也可以,但是由于需求需要order by两个字段,达不到想要的效果,所以用两个函数来解决,array_filter和array_merge

1.这个可以把zip类型的用到一个数组即:

$filtered_zip=array_filter($resource_child_list,function($item){

return$item['format_code'] =='ZIP';

});

var_dump($filtered_zip):

2=>array

'id'=>string'ro15042376949HLh

'format_code'=>string'ZIP''

2.这个可以把不是zip的独立成另外的数组

$filtered_other=array_filter($resource_child_list,function($item){

return$item['format_code'] !=='ZIP';

});

var_dump($filtered_other)如下

0=>array

'id'=>'ro1504237694PreO

format_code'=>string'WORD,PDF'

1=>array

'id'=>string'ro15042376942xhS

'format_code'=>string'WORD,PDF'

要ZIP的第一个显示,用这个函数array_merge,把zip的数组放在第一位

$resource_child_list=array_merge($filtered_zip,$filtered_other);

var_dump($resource_child_list);即为第一个显示

0=>array

'id'=>string'ro15042376949HLh

'format_code'=>string'ZIP''

1=>array

'id'=>'ro1504237694PreO

format_code'=>string'WORD,PDF'

2=>array

'id'=>string'ro15042376942xhS

'format_code'=>string'WORD,PDF'

由于数组的部分字段不需要,只显示了部分,如果有什么问题,可以留言或者加我的QQ:840799505,备注:,如果我做的到可以帮助,本人也是新入门的

你可能感兴趣的:(PHP array_filter和array_merge的使用)