How to get a set of keys in a two-dimensional array in PHP_PHP Tutorial

WBOY
Release: 2016-07-13 10:29:03
Original
893 people have browsed it

This article is for code sharing. I saw some "big cow" code at work and wanted to share it.

Specifically, the following two-dimensional array is read from the library.

Code list:

Copy code The code is as follows:

$user = array(
0 => array(
'id' => 1,
'name' => 'Zhang San',
'email' => 'zhangsan@sina.com',
),
1 => array(
'id' => 2,
'name' => '李思',
'email' => 'lisi@163. com',
),
2 => array(
'id' => 5,
'name' => '王五',
'email' => ; '10000@qq.com',
),
...
);

The above array format is mainly based on PHP+MYSQL. It must be very familiar.

So, now there are two requirements:

1) Get the set of index "id" and save it as a one-bit array, that is, get array(1,2,5)

I wonder how your friends would write it?

If it were the way I wrote it in the past, I would directly foreach, and then use array_push to stuff into array variables one by one. This can also be achieved. But this way of writing affects performance, because using PHP's native functions is definitely more efficient than looping.

Code list:
Copy code The code is as follows:

$ids = array();
$ids = array_map('array_shift', $user);

The above code can get the results we want. Please refer to the manual for the use of functions.

In fact, there is another solution here, using the array_column function, but this function requires PHP version requirements, (PHP 5 >= 5.5.0)

Code list:
Copy code The code is as follows:

$ids = array();
$ids = array_column($user, 'id');

In this case, the efficiency will definitely be higher.

2) Get the set of index "name" and save it as a one-bit array, that is, get array('Zhang San', 'Li Si', 'Wang Wu')

Follow the , my previous writing method was still the same foreach, and then array_push stuffed into an array variable one by one. See the efficient code listing.

Code list:
Copy code The code is as follows:

$names = array();
$names = array_reduce($user, create_function('$v,$w', '$v[$w["id"]]=$w["name"];return $v;'));

Get the result:
Copy the code The code is as follows:

array(
1 => 'Zhang San',
2 => 'Li Si',
5 => 'Wang Wu',
);

Children's shoes that are often foreach, hurry up Correct it!

www.bkjia.comtruehttp: //www.bkjia.com/PHPjc/779571.htmlTechArticleThis article is for code sharing. I also saw some "big cow" code at work, so I want to share it. Specifically, the following two-dimensional array is read from the library. Code listing...
Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!