Home php教程 php手册 PHP 数组学习排序全接触第1/2页

PHP 数组学习排序全接触第1/2页

Jun 13, 2016 pm 12:22 PM
arr array php code element copy study sort array return

array_values($arr) array
返回数组所有元素

复制代码 代码如下:


$arr = array("a", "b", "c");
$arr = array_flip($arr); //反转数组的下标和值现在的$arr = array(0, 1, 2);
$arr = array_values($arr); //返回数组$arr中的所有元素
print_r($arr); //结果: array(0, 1, 2);
?>



array_walk($arr, $func, [$data]) bool
使用用户自定义的函数遍历所有的元素,返回true/false
注意:此函数只处理数组的第一维
$func是一个函数名
默认会传入两个参数 第一个 $arr的值, 第二个$arr的下标, 一对一对的传哦

复制代码 代码如下:

$arr = array('a', 'b', 'c');
array_walk($arr, 'test'); //这里第二个参数test就是函数名
function test(&$val, $key) //这里第一个参数加上引用, 那么修改$val就等于修改$arr中的元素
{
$val = 'x_' . $val; //这里给他加一个前缀
}
print_r($arr); //输出结果 array('x_a', 'x_b', 'x_c');
//这里如果把$arr改成 $arr = array('a', 'b', 'c', array(1, 2, 3)); 打印结果将是 array('x_a', 'x_b', 'x_c', 'x_Array');
?>


现在传入第三那个参数$data, 如果有传入第三个参数,那么第三个参数将传给第二个参数定义的函数当中的第三个参数

复制代码 代码如下:


array_walk($arr, 'test', 'x_');
function test(&$val, $key, $prefix)
{
$val = $prefix . $val; //其实这里的$prefix就是上面的x_
}
print_r($arr); //输出结果和上面一样 array('x_a', 'x_b', 'x_c');
?>



arsort($arr) bool
对数组$arr进行倒序排列并保留下标和值的关系,如果排序成功返回true 否则返回 false
此函数只处理数组的第一维

复制代码 代码如下:


$arr = array('a' => 'a', 'b' => 'b', 'c' => 'c');
arsort($arr);
print_r($arr); //打印结果: array('c' => 'c', 'b' => 'b', 'a' => 'a'); 如果有数字那么数字会在字符前面
?>


asort($arr) bool
对数组$arr进行正序排列也就是a-z这样排列, 返回值和上面一样
此函数也保留下标和值的关系

复制代码 代码如下:


$arr = array('a' => 'a', 'b' => 'b', 'c' => 'c');
asort($arr);
print_r($arr); //结果没变, 就是原那数组
$arr = array('c' => 'c', 'b' => 'b', 'a' => 'a');
asort($arr);
print_r($arr); //结果:array('a' => 'a', 'b' => 'b', 'c' => 'c');
?>


compact($varname, ...., $varname) array
接受n个$varname并将$varname当做下标$varname的值当做值创建一个数组$varname可以为数组
解释不清楚, 看例子

复制代码 代码如下:


$a = "变量a";
$b = "变量b";
$arr = compact('a', 'b'); //这里传入 a b 分别为上面定义的变量名称
print_r($arr); //打印结果为 array('a' => '变量a', 'b' => '变量b');
//还可以把变量名称当做数组传入
$vars = array('a', 'b');
$arr = compact($vars);
print_r($arr); //结果和上面一样, 其实这个函数就是做extract的相反操作
?>


extract($arr, $type, $prefix) int
将数组$arr的下标当做变量名, 值当做变量的值
$arr 目标数组
$type 这个是遇过遇到相同下标使用什么方式处理, 值是PHP已经定义了的常量
EXTR_OVERWRITE 如果相同, 那么就覆盖前面的那个变量, 默认就是这个
EXTR_SKIP 如果相同, 不覆盖前面那个变量
EXTR_PREFIX_SAME 如果相同, 那么使用第三个参数$prefix加到变量名前
EXTR_PREFIX_ALL 把所有变量名称都加上$prefix当做前缀
注意在$type为EXTR_PREFIX_SAME或EXTR_PREFIX_ALL时才需要传入参数$prefix, 不然传了也没用。。。
例子

复制代码 代码如下:


$arr = array('a' => '变量a', 'b' => '变量b');
extract($arr, EXTR_OVERWRITE); //如果有相同,那么覆盖
echo $a; //输出结果将是 '变量a'
echo $b; //结果: '变量b'
$arr = array('a' => '变量a', 'b' => '变量b', 'a' => '第二个变量a'); //这里有两个元素下标都为a
extract($arr);
echo $a; //输出结果是: '第二个变量a' 很明显已经覆盖了 '变量a' 因为默认第二个参数是 EXTR_OVERWRITE
?>



count($arr) int
统计数组中的元素的数目

复制代码 代码如下:


$arr = array('a', 'b');
echo count($arr); //很明显结果为2
?>


current($arr) mixed
返回数组中当前指针所指的元素,此函数别名 pos

复制代码 代码如下:


$arr = array('a', 'b', 'c');
echo current($arr); //结果为 'a'
echo next($arr); //指针向下一个移动,所以现在指针所指的是b 输出结果当然为 'b'
echo current($arr); //结果又是b 因为当前指针就在b这哦
echo end($arr) //指针移动到数组最后, 并返回结果, 所以结果为c
echo prev($arr); //指针向上一个移动, 结果b
echo key($arr); //返回指针所指元素的下标 因为上面指针到了b那么所有 结果为1 因为b的下标就是1
echo reset($arr); //重置指针都数组开头 结果a
?>


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

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

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

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

PHP 8.4 Installation and Upgrade guide for Ubuntu and Debian PHP 8.4 Installation and Upgrade guide for Ubuntu and Debian Dec 24, 2024 pm 04:42 PM

PHP 8.4 brings several new features, security improvements, and performance improvements with healthy amounts of feature deprecations and removals. This guide explains how to install PHP 8.4 or upgrade to PHP 8.4 on Ubuntu, Debian, or their derivati

How To Set Up Visual Studio Code (VS Code) for PHP Development How To Set Up Visual Studio Code (VS Code) for PHP Development Dec 20, 2024 am 11:31 AM

Visual Studio Code, also known as VS Code, is a free source code editor — or integrated development environment (IDE) — available for all major operating systems. With a large collection of extensions for many programming languages, VS Code can be c

7 PHP Functions I Regret I Didn't Know Before 7 PHP Functions I Regret I Didn't Know Before Nov 13, 2024 am 09:42 AM

If you are an experienced PHP developer, you might have the feeling that you’ve been there and done that already.You have developed a significant number of applications, debugged millions of lines of code, and tweaked a bunch of scripts to achieve op

How do you parse and process HTML/XML in PHP? How do you parse and process HTML/XML in PHP? Feb 07, 2025 am 11:57 AM

This tutorial demonstrates how to efficiently process XML documents using PHP. XML (eXtensible Markup Language) is a versatile text-based markup language designed for both human readability and machine parsing. It's commonly used for data storage an

Explain JSON Web Tokens (JWT) and their use case in PHP APIs. Explain JSON Web Tokens (JWT) and their use case in PHP APIs. Apr 05, 2025 am 12:04 AM

JWT is an open standard based on JSON, used to securely transmit information between parties, mainly for identity authentication and information exchange. 1. JWT consists of three parts: Header, Payload and Signature. 2. The working principle of JWT includes three steps: generating JWT, verifying JWT and parsing Payload. 3. When using JWT for authentication in PHP, JWT can be generated and verified, and user role and permission information can be included in advanced usage. 4. Common errors include signature verification failure, token expiration, and payload oversized. Debugging skills include using debugging tools and logging. 5. Performance optimization and best practices include using appropriate signature algorithms, setting validity periods reasonably,

PHP Program to Count Vowels in a String PHP Program to Count Vowels in a String Feb 07, 2025 pm 12:12 PM

A string is a sequence of characters, including letters, numbers, and symbols. This tutorial will learn how to calculate the number of vowels in a given string in PHP using different methods. The vowels in English are a, e, i, o, u, and they can be uppercase or lowercase. What is a vowel? Vowels are alphabetic characters that represent a specific pronunciation. There are five vowels in English, including uppercase and lowercase: a, e, i, o, u Example 1 Input: String = "Tutorialspoint" Output: 6 explain The vowels in the string "Tutorialspoint" are u, o, i, a, o, i. There are 6 yuan in total

Explain late static binding in PHP (static::). Explain late static binding in PHP (static::). Apr 03, 2025 am 12:04 AM

Static binding (static::) implements late static binding (LSB) in PHP, allowing calling classes to be referenced in static contexts rather than defining classes. 1) The parsing process is performed at runtime, 2) Look up the call class in the inheritance relationship, 3) It may bring performance overhead.

What are PHP magic methods (__construct, __destruct, __call, __get, __set, etc.) and provide use cases? What are PHP magic methods (__construct, __destruct, __call, __get, __set, etc.) and provide use cases? Apr 03, 2025 am 12:03 AM

What are the magic methods of PHP? PHP's magic methods include: 1.\_\_construct, used to initialize objects; 2.\_\_destruct, used to clean up resources; 3.\_\_call, handle non-existent method calls; 4.\_\_get, implement dynamic attribute access; 5.\_\_set, implement dynamic attribute settings. These methods are automatically called in certain situations, improving code flexibility and efficiency.

See all articles