数组比较 php_分享六个比较好用的php数组Array函数

1. array_column 返回输入数组中某个单一列的值。

2. array_filter 用回调函数过滤数组中的元素。

3. array_map 将用户自定义函数作用到给定数组的每个值上,返回新的值。

4. array_walk_recursive 对数组中的每个成员递归地应用用户函数。

5. extract (从数组中将变量导入到当前的符号表),  compact (创建一个包含变量名和它们的值的数组)

6. uasort 使用用户自定义的比较函数对数组中的键值进行排序。

1. array_column 返回输入数组中某个单一列的值。

类似功能有

1.1 Yii2 中的 ArrayHelper::index($array, 'id');

1.2 Yii2 中的 $query->select(['last_name', 'id'])->indexBy('id')->column();

// 可能从数据库中返回数组

$a = array(

array(

'id' => 5698,

'first_name' => 'Peter',

'last_name' => 'Griffin',

),

array(

'id' => 4767,

'first_name' => 'Ben',

'last_name' => 'Smith',

),

array(

'id' => 3809,

'first_name' => 'Joe',

'last_name' => 'Doe',

)

);

$last_names = array_column($a, 'last_name', 'id');

print_r($last_names);

输出结果:

Array

(

[5698] => Griffin

[4767] => Smith

[3809] => Doe

)

2. array_filter 用回调函数过滤数组中的元素。

function test_odd($var)

{

return($var & 1);

}

$a1=array("a","b",2,3,4);

print_r(array_filter($a1,"test_odd"));

输出:

Array

(

[2] => 2

[3] => 3

[4] => 4

)

3. array_map 将用户自定义函数作用到给定数组的每个值上,返回新的值。

此函数有点类似与 array_walk_recursive , 只是多写了一步递归

function myfunction($v) {

if (is_array($v)) {

return array_map("myfunction", $v);

}

return($v * $v);

}

$a = array(1, 2, 3, 4, 5, 6 => [2, 3]);

print_r(array_map("myfunction", $a));

输出:

Array

(

[0] => 1

[1] => 4

[2] => 9

[3] => 16

[4] => 25

[6] => Array

(

[0] => 4

[1] => 9

)

)

function myfunction($v1, $v2) {

if ($v1 === $v2) {

return "same";

}

return "different";

}

$a1 = array("Horse", "Dog", "Cat");

$a2 = array("Cow", "Dog", "Rat");

print_r(array_map("myfunction", $a1, $a2));

输出:

Array

(

[0] => different

[1] => same

[2] => different

4. array_walk_recursive 对数组中的每个成员递归地应用用户函数。

此函数有点类似与 array_map, 只是省去了写递归

function myfunction(&$value, $key, $p) {

if ($value == 'xxx') {

$value = $p;

}

}

$a = array("a" => "red", "b" => "green", "c" => "blue", 'd' => ['x' => 'xxx', 'y' => 'yyy']);

array_walk_recursive($a, "myfunction", 'green');

print_r($a);

输出:

Array

(

[a] => red

[b] => green

[c] => blue

[d] => Array

(

[x] => green

[y] => yyy

)

)

5. extract (从数组中将变量导入到当前的符号表),  compact (创建一个包含变量名和它们的值的数组)

$a = "Original";

$my_array = array("a" => "Cat","b" => "Dog", "c" => "Horse");

extract($my_array);

echo "\$a = $a; \$b = $b; \$c = $c";

输出:

$a = Cat; $b = Dog; $c = Horse

$firstname = "Peter";

$lastname = "Griffin";

$age = "41";

$result = compact("firstname", "lastname", "age");

print_r($result);

输出:

Array

(

[firstname] => Peter

[lastname] => Griffin

[age] => 41

)

6. uasort 使用用户自定义的比较函数对数组中的键值进行排序(可以对二维数组排序)。

$arr2 = [

[

'id' => 3,

'age' => 33,

],

[

'id' => 2,

'age' => 44,

],

[

'id' => 1,

'age' => 22,

],

];

//按age字段升序排序

uasort($arr2, function($a, $b) {

$field = 'age';

if ($a[$field] == $b[$field]){

return 0;

}

return ($a[$field] < $b[$field]) ? -1 : 1;

});

print_r($arr2);

输出:

Array

(

[2] => Array

(

[id] => 1

[age] => 22

)

[0] => Array

(

[id] => 3

[age] => 33

)

[1] => Array

(

[id] => 2

[age] => 44

)

)

总结

以上所述是小编给大家介绍的六个比较好用的php数组Array函数,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值