Home >Backend Development >PHP Problem >PHP array learning: how to swap the positions of key names and values
In the previous article "PHP Array Learning: How to Sort Two-Dimensional Arrays (2 Methods)", we learned about two methods of sorting two-dimensional arrays based on a certain field. There are Friends who need it can learn about it~
→Related recommendations: 《PHP array learning series summary (continuously updated~)》
This article The theme is "Exchanging the positions of the key name and the value", which simply means exchanging the key name and key value in the array.
For this operation, there is a built-in function in PHP that has this function, that is the array_flip($array)
function.
Let’s take a closer look at the following example
<?php $arr = array('a', 'b', '1', 2, 3); var_dump($arr); var_dump(array_flip($arr)); ?>
Output results:
Description: In the $array array The value needs to be a valid key name (such as int or string), a warning will be issued if the value is of the wrong type, and the key-value pair in question will not be reversed.
If the same key value appears multiple times, the last key name will be used as its value, and all others will be lost.
<?php $arr = array("a" => 1, "b" => 1, "c" => 2); var_dump($arr); var_dump(array_flip($arr)); ?>
Output result:
It can be seen that using array_flip() can exchange key names and key values very quickly. So if you don't use the array_flip() function, how to exchange key names and key values? Let me introduce it to you below.
Idea:
First use array_keys($array)
to get the key names in the array and return an array of key names;
Then use array_values($array)
Get the values of all elements in the array and return an array of key values;
Finally use array_combine($keys,$values)
To merge two arrays to create a new array, the first parameter will be used as the key name of the new array, and the second parameter will be used as the key value of the new array. (If you don’t know about the array_combine() function, you can read the article "PHP Array Learning: How to Create Arrays by Merging")
Implementation code:
<?php $arr = array('a', 'b', '1', 2, 3,'c'); var_dump($arr); //获取全部键名 $keys=array_keys($arr); //获取全部键值 $values=array_values($arr); $flip=array_combine($values,$keys); var_dump($flip); ?>
Output result:
If there are multiple identical key values, the processing method is similar to the array_flip() function, using the last key name as its value, all others are lost.
<?php header("content-type:text/html;charset=utf-8"); $arr = array('a', 'b', '1', 2, 3,'1'); var_dump($arr); //获取全部键名 $keys=array_keys($arr); //获取全部键值 $values=array_values($arr); $flip=array_combine($values,$keys); var_dump($flip); ?>
Output result:
Okay, that’s all. If you want to know anything else, you can click this. → →php video tutorial
Finally, I would like to recommend a free video tutorial on PHP arrays: PHP function array array function video explanation, come and learn!
The above is the detailed content of PHP array learning: how to swap the positions of key names and values. For more information, please follow other related articles on the PHP Chinese website!