To get a column from a multidimensional PHP array, the most common method is to use the array_column() function. 1. array_column() is suitable for two-dimensional arrays, such as extracting the name column in $users: $names = array_column($users, 'name'); 2. You can specify the key name to retain the original field, such as using id as the key: $names = array_column($users, 'name', 'id'); 3. For three-dimensional and above arrays, you need to manually extract it with array_map, such as taking $info['name'] in $data: $names = array_map(fn($item) => $item'info', $data); 4. Fault-tolerant treatment should be performed when encountering irregular structures, such as filtering empty values: $names = array_filter(array_column($data, 'name')) or set the default value: $names = array_map(fn($item) => $item['name'] ?? 'Unknown', $data).
The most common method to get a column from a multidimensional PHP array is to use array_column()
function. This function is specifically used to extract a column of data in a two-dimensional array, which is very convenient.

Use array_column() to extract the specified column
This is the most direct and recommended way. Suppose you have an array similar to the following:

$users = [ ['id' => 1, 'name' => 'Alice', 'email' => 'alice@example.com'], ['id' => 2, 'name' => 'Bob', 'email' => 'bob@example.com'], ['id' => 3, 'name' => 'Charlie', 'email' => 'charlie@example.com'], ];
If you want to extract name
column of all users, you can write it like this:
$names = array_column($users, 'name');
The result is:

['Alice', 'Bob', 'Charlie']
- The first parameter is the array you want to process
- The second parameter is the "column name" (that is, the key name) you want to extract
If you also want to keep a field in the original array as the key of the new array, such as using id
as the key:
$names = array_column($users, 'name', 'id');
The result will be:
[ 1 => 'Alice', 2 => 'Bob', 3 => 'Charlie' ]
This approach is suitable for most cases of two-dimensional arrays.
What to do with more than two-dimensional arrays?
If the array is nested more than two layers (such as three-dimensional or higher), array_column()
is not enough. At this time, you need to manually traverse or cooperate with other functions to extract the data.
For example:
$data = [ [ 'id' => 1, 'info' => ['name' => 'Alice', 'age' => 25] ], [ 'id' => 2, 'info' => ['name' => 'Bob', 'age' => 30] ] ];
If you want to extract the name
field under info
in each element, you can do it like this:
$names = array_map(function($item) { return $item['info']['name']; }, $data);
The result is:
['Alice', 'Bob']
Although this writing method is slightly more complicated than array_column()
, it is clear in logic and is suitable for handling arrays with deeper structures.
What should I do if I encounter irregular structures?
Sometimes the array structure may be less unified, for example, some levels lack the expected key, so you need to pay attention to prevent errors.
for example:
$data = [ ['id' => 1, 'name' => 'Alice'], ['id' => 2], // Missing name field['id' => 3, 'name' => 'Charlie'] ];
At this time, if you use array_column($data, 'name')
directly, the second element will return null
. You can combine array_filter()
to filter out null values:
$names = array_filter(array_column($data, 'name'));
This way, only the item with name
can be retained.
If you want to provide default values ??when missing, you can use array_map
to customize the processing:
$names = array_map(function($item) { return $item['name'] ?? 'Unknown'; }, $data);
Let's summarize
-
array_column()
is the easiest way to extract a column in a two-dimensional array - For three-layer or above structures, manual extraction is required using
array_map
- When encountering a situation where the structure is not unified, remember to do fault tolerance to avoid errors
Basically these methods are just the ones, not complicated but are easy to ignore some boundary situations.
The above is the detailed content of how to get a column from a multidimensional php array. For more information, please follow other related articles on the PHP Chinese website!

Hot AI Tools

Undress AI Tool
Undress images for free

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics

Common problems and solutions for PHP variable scope include: 1. The global variable cannot be accessed within the function, and it needs to be passed in using the global keyword or parameter; 2. The static variable is declared with static, and it is only initialized once and the value is maintained between multiple calls; 3. Hyperglobal variables such as $_GET and $_POST can be used directly in any scope, but you need to pay attention to safe filtering; 4. Anonymous functions need to introduce parent scope variables through the use keyword, and when modifying external variables, you need to pass a reference. Mastering these rules can help avoid errors and improve code stability.

To safely handle PHP file uploads, you need to verify the source and type, control the file name and path, set server restrictions, and process media files twice. 1. Verify the upload source to prevent CSRF through token and detect the real MIME type through finfo_file using whitelist control; 2. Rename the file to a random string and determine the extension to store it in a non-Web directory according to the detection type; 3. PHP configuration limits the upload size and temporary directory Nginx/Apache prohibits access to the upload directory; 4. The GD library resaves the pictures to clear potential malicious data.

There are three common methods for PHP comment code: 1. Use // or # to block one line of code, and it is recommended to use //; 2. Use /.../ to wrap code blocks with multiple lines, which cannot be nested but can be crossed; 3. Combination skills comments such as using /if(){}/ to control logic blocks, or to improve efficiency with editor shortcut keys, you should pay attention to closing symbols and avoid nesting when using them.

AgeneratorinPHPisamemory-efficientwaytoiterateoverlargedatasetsbyyieldingvaluesoneatatimeinsteadofreturningthemallatonce.1.Generatorsusetheyieldkeywordtoproducevaluesondemand,reducingmemoryusage.2.Theyareusefulforhandlingbigloops,readinglargefiles,or

The key to writing PHP comments is to clarify the purpose and specifications. Comments should explain "why" rather than "what was done", avoiding redundancy or too simplicity. 1. Use a unified format, such as docblock (/*/) for class and method descriptions to improve readability and tool compatibility; 2. Emphasize the reasons behind the logic, such as why JS jumps need to be output manually; 3. Add an overview description before complex code, describe the process in steps, and help understand the overall idea; 4. Use TODO and FIXME rationally to mark to-do items and problems to facilitate subsequent tracking and collaboration. Good annotations can reduce communication costs and improve code maintenance efficiency.

ToinstallPHPquickly,useXAMPPonWindowsorHomebrewonmacOS.1.OnWindows,downloadandinstallXAMPP,selectcomponents,startApache,andplacefilesinhtdocs.2.Alternatively,manuallyinstallPHPfromphp.netandsetupaserverlikeApache.3.OnmacOS,installHomebrew,thenrun'bre

TolearnPHPeffectively,startbysettingupalocalserverenvironmentusingtoolslikeXAMPPandacodeeditorlikeVSCode.1)InstallXAMPPforApache,MySQL,andPHP.2)Useacodeeditorforsyntaxsupport.3)TestyoursetupwithasimplePHPfile.Next,learnPHPbasicsincludingvariables,ech

In PHP, you can use square brackets or curly braces to obtain string specific index characters, but square brackets are recommended; the index starts from 0, and the access outside the range returns a null value and cannot be assigned a value; mb_substr is required to handle multi-byte characters. For example: $str="hello";echo$str[0]; output h; and Chinese characters such as mb_substr($str,1,1) need to obtain the correct result; in actual applications, the length of the string should be checked before looping, dynamic strings need to be verified for validity, and multilingual projects recommend using multi-byte security functions uniformly.
