二维数组把某个字段的值提到key的位置

        数组去重处理的时候,有时候我们需要把一个二维数组的某个字段的值提到key的位置。

        这个时候,我们就可以借助 array_column 这个函数。

        

        冷暖自知一抹茶ck


    1)、获取二维数组单个key的所有值

$arr = array(
	array(
		'id' => 5698,
		'first_name' => 'Bill',
		'last_name' => 'Gates',
	),
	array(
		'id' => 4767,
		'first_name' => 'Steve',
		'last_name' => 'Jobs',
	),
	array(
		'id' => 3809,
		'first_name' => 'Mark',
		'last_name' => 'Zuckerberg',
	)
);

$res = array_column($arr,'id');

输出结果:
    array(3) {
      [0]=>
      int(5698)
      [1]=>
      int(4767)
      [2]=>
      int(3809)
    }

        2)、把二维数组某个字段的值提到key的位置

$arr = array(
	array(
		'id' => 5698,
		'first_name' => 'Bill',
		'last_name' => 'Gates',
	),
	array(
		'id' => 4767,
		'first_name' => 'Steve',
		'last_name' => 'Jobs',
	),
	array(
		'id' => 3809,
		'first_name' => 'Mark',
		'last_name' => 'Zuckerberg',
	)
);

$res = array_column($arr, NULL, 'id');
var_dump($res);

输出结果:
    array(3) {
      [5698]=>
      array(3) {
        ["id"]=>
        int(5698)
        ["first_name"]=>
        string(4) "Bill"
        ["last_name"]=>
        string(5) "Gates"
      }
      [4767]=>
      array(3) {
        ["id"]=>
        int(4767)
        ["first_name"]=>
        string(5) "Steve"
        ["last_name"]=>
        string(4) "Jobs"
      }
      [3809]=>
      array(3) {
        ["id"]=>
        int(3809)
        ["first_name"]=>
        string(4) "Mark"
        ["last_name"]=>
        string(10) "Zuckerberg"
      }
    }

        或者:

$temp_key   = array_column($arr,'id');  //键值
$res        = array_combine($temp_key,$arr) ;
var_dump($res);



冷暖自知一抹茶ck
请先登录后发表评论
  • 最新评论
  • 总共0条评论