PHP array learning: how to swap the positions of key names and values

青灯夜游
Release: 2023-03-12 08:08:02
Original
3392 people have browsed it

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(&#39;a&#39;, &#39;b&#39;, &#39;1&#39;, 2, 3);
var_dump($arr);
var_dump(array_flip($arr));
?>
Copy after login

Output results:

PHP array learning: how to swap the positions of key names and values

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));
?>
Copy after login

Output result:

PHP array learning: how to swap the positions of key names and values

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(&#39;a&#39;, &#39;b&#39;, &#39;1&#39;, 2, 3,&#39;c&#39;);
var_dump($arr);

//获取全部键名
$keys=array_keys($arr);
//获取全部键值
$values=array_values($arr);
$flip=array_combine($values,$keys);

var_dump($flip);
?>
Copy after login

Output result:

PHP array learning: how to swap the positions of key names and values

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(&#39;a&#39;, &#39;b&#39;, &#39;1&#39;, 2, 3,&#39;1&#39;);
var_dump($arr);

//获取全部键名
$keys=array_keys($arr);
//获取全部键值
$values=array_values($arr);
$flip=array_combine($values,$keys);

var_dump($flip);
?>
Copy after login

Output result:

PHP array learning: how to swap the positions of key names and values

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!

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