美文网首页
PHP中的常用数组函数解析 -- PHP 学习 (十四)

PHP中的常用数组函数解析 -- PHP 学习 (十四)

作者: 无故下架内容so账号已弃用 | 来源:发表于2019-05-07 23:11 被阅读0次

所有数组函数学习手册地址:
https://www.php.net/manual/zh/ref.array.php

贼多有没有, 好在很多还是很眼熟的.

常用函数(个人认为常用):

array_values, array_keys, array_push, array_pop, array_shift, array_unshift, array_merge, array_product, array_rand, array_sum, array_search, array_slice, array_splice, array_unique, count, in_array,array_reverse

还有前面已经学习过的: range, compact, next, prev, current, end, reset, list, each, key

记录部分函数的基础用法, 更多函数更多详细用法还得去查看上面的手册.

  • array_keys, array_values

(1) array_keys — 返回数组中部分的或所有的键名

(2) array_values — 返回数组中所有的值

<?php
header('content-type: text/html;charset=utf-8');

$data = ['username'=>'guoyou.li','password'=>'12345476','sex'=>'男'];

$keys = join(',',array_keys($data));
$vals = "'".join("','",array_values($data))."'";

$sql = "INSERT user({$keys}) INTO VALUES({$vals})";
echo $sql;

// INSERT user(username,password,sex) INTO VALUES('guoyou.li','12345476','男')


  • array_push, array_pop, array_shift, array_unshift

(1) array_push — 将一个或多个单元压入数组的末尾(入栈),array 的长度将根据入栈变量的数目增加

(2) array_pop — 弹出数组最后一个单元(出栈),并将数组 array 的长度减一。

(3) array_shift() 将 array 的第一个单元移出并作为结果返回,将 array 的长度减一并将所有其它单元向前移动一位。所有的数字键名将改为从零开始计数,文字键名将不变。

(4) array_unshift — 在数组开头插入一个或多个单元
用法: array_unshift ( array &$array [, mixed $... ] ) : int

<?php
header('content-type: text/html;charset=utf-8');

$arr = ['a','b','c'];

// 向数组的末尾插入新的元素
array_push($arr,2,3,4,5,6,7);
print_r($arr);
/*
Array
(
    [0] => a
    [1] => b
    [2] => c
    [3] => 2
    [4] => 3
    [5] => 4
    [6] => 5
    [7] => 6
    [8] => 7
)
*/

// 向数组的前面插入新的元素
array_unshift($arr,'A','B','C');
print_r($arr);
/*
Array
(
    [0] => A
    [1] => B
    [2] => C
    [3] => a
    [4] => b
    [5] => c
    [6] => 2
    [7] => 3
    [8] => 4
    [9] => 5
    [10] => 6
    [11] => 7
)
*/

// 删掉数组的第一个元素, 并返回
$shift = array_shift($arr);
echo $shift.'<br />'; // => A
print_r($arr);
/*
Array
(
    [0] => B
    [1] => C
    [2] => a
    [3] => b
    [4] => c
    [5] => 2
    [6] => 3
    [7] => 4
    [8] => 5
    [9] => 6
    [10] => 7
)
*/

// 删掉数组的最后一个元素, 并返回
$pop = array_pop($arr);
echo $pop.'<br />'; // => 7
print_r($arr);
/*
Array
(
    [0] => B
    [1] => C
    [2] => a
    [3] => b
    [4] => c
    [5] => 2
    [6] => 3
    [7] => 4
    [8] => 5
    [9] => 6
)
*/

  • array_product, array_sum, count

(1) array_product() 以整数或浮点数返回一个数组中所有值的乘积。

(2) array_sum() 将数组中的所有值相加,并返回结果。

(3) count — 计算数组中的单元数目,或对象中的属性个数

<?php
header('content-type: text/html;charset=utf-8');

$arr = [3,4,34,3,6];

// 求积
$product = array_product($arr);
echo $product,'<br/>'; // => 7344
// 求和
$sum = array_sum($arr);
echo $sum,'<br />'; // => 50
// 数组的个数
$length = count($arr);
echo $length; // => 5

  • in_array, array_merge, array_rand, array_search, array_reverse

(1) in_array — 检查数组中是否存在某个值
用法: in_array($needle, $haystack [, bool $strict = FALSE] ) : bool

$arr = [3,4,34,3,6];

var_dump(in_array(34, $arr)); // => bool(true)
echo '<br />';
var_dump(in_array('34', $arr)); // => bool(true)
echo '<br />';
// 检验类型
var_dump(in_array('34', $arr, true)); // => bool(false)
echo '<br />';
var_dump(in_array('666', $arr)); // => bool(false)
echo '<br />';

(2) array_merge — 合并一个或多个数组
用法: array_merge ( array $array1 [, array $... ] ) : array

$a = [3,4,34,3,6];
$b = ['a','b'];

// 合并数组
$c = array_merge($a, $b);

print_r($a);
/*
// $a
Array
(
    [0] => 3
    [1] => 4
    [2] => 34
    [3] => 3
    [4] => 6
)
*/
print_r($b);
/*
 * $b
Array
(
    [0] => a
    [1] => b
)
*/
print_r($c);
/*
// $c
Array
(
    [0] => 3
    [1] => 4
    [2] => 34
    [3] => 3
    [4] => 6
    [5] => a
    [6] => b
)
*/

(3) array_rand — 从数组中随机取出一个或多个单元
用法: array_rand ( array $array [, int $num = 1 ] )

如果只取出一个,array_rand() 返回随机单元的键名。 否则就返回包含随机键名的数组

$arr = ['a','b','guoyou','hahahhahaha'];

$result = array_rand($arr);
echo $result; // => 3
echo '<br />';
echo $arr[$result]; // => hahahhahaha
echo '<br />';

$results = array_rand($arr, 2);
print_r($results); // => Array ( [0] => 2 [1] => 3 )

(4) array_search — 在数组中搜索给定的值,如果成功则返回首个相应的键名
用法: array_search ($needle , $haystack [, bool $strict = false ] )

$arr = ['a','b','guoyou','hahahhahaha', '34'];

echo array_search(34, $arr); // => 4
echo '<br />';
echo array_search('34', $arr); // => 4
echo '<br />';
var_dump(array_search(34, $arr, true)); // => bool(false)

(5) array_reverse() 接受数组 array 作为输入并返回一个单元为相反顺序的新数组。
用法: array_reverse ( array $array [, bool $preserve_keys = FALSE ] ) : array

$arr = ['a','b','guoyou','hahahhahaha', '34'];

// 反转数组
$result = array_reverse($arr);
print_r($result);
/*
Array
(
    [0] => 34
    [1] => hahahhahaha
    [2] => guoyou
    [3] => b
    [4] => a
)
*/

  • array_slice, array_splice, array_unique

(1) array_slice() 返回根据 offset 和 length 参数所指定的 array 数组中的一段序列。
用法: array_slice ( array $array , int $offset [, int $length = NULL [, bool $preserve_keys = false ]] ) : array

a. 如果 offset 非负,则序列将从 array 中的此偏移量开始。如果 offset 为负,则序列将从 array 中距离末端这么远的地方开始。

b. 如果给出了 length 并且为正,则序列中将具有这么多的单元。如果给出了 length 并且为负,则序列将终止在距离数组末端这么远的地方。如果省略,则序列将从 offset 开始一直到 array 的末端。

c. 注意 array_slice() 默认会重新排序并重置数组的数字索引。你可以通过将 preserve_keys 设为 TRUE 来改变此行为。

<?php
header('content-type: text/html;charset=utf-8');

$arr = ['a','b','guoyou','hahahhahaha', '34'];

// 从下标3之后开始截取数组, 并返回
$slice = array_slice($arr, 3);
print_r($slice);
/*
Array
(
    [0] => hahahhahaha
    [1] => 34
)
*/

// 从倒数第四个开始截取长度为1的数组,并返回
$a = array_slice($arr, -4, 1);
print_r($a);
/*
Array
(
    [0] => b
)
*/

// 从倒数第四个开始截取长度为1的数组,并返回, 且不改变原来的索引下标
$a = array_slice($arr, -4, 1, true);
print_r($a);
/*
Array
(
    [1] => b
)
*/

(2) array_splice — 去掉数组中的某一部分并用其它值取代,
用法: array_splice ( array &$input , int $offset [, int $length = count($input) [, mixed $replacement = array() ]] ) : array

$arr = ['a','b','guoyou','hahahhahaha', '34'];

//  把下标 3,4 的元素替换成新插入的项
array_splice($arr, 3, 2, 'new');

print_r($arr); // => Array ( [0] => a [1] => b [2] => guoyou [3] => new )

// 在下标3的后面插入新的元素
array_splice($arr, 3, 0, 'add');

print_r($arr); // => Array ( [0] => a [1] => b [2] => guoyou [3] => add [4] => new )

(3) array_unique — 移除数组中重复的值
用法: array_unique ( array $array [, int $sort_flags = SORT_STRING ] ) : array

$arr = ['1','2',1, 2, 1, 34, '34'];

$newArr = array_unique($arr);

print_r($arr);
/*
Array
(
    [0] => 1
    [1] => 2
    [2] => 1
    [3] => 2
    [4] => 1
    [5] => 34
    [6] => 34
)
*/
print_r($newArr);
/*
Array
(
    [0] => 1
    [1] => 2
    [5] => 34
)
*/

相关文章

  • PHP中的常用数组函数解析 -- PHP 学习 (十四)

    所有数组函数学习手册地址:https://www.php.net/manual/zh/ref.array.php ...

  • 链家-开发商端-面试题

    php php常用的数组及用法 php魔术函数 php私有成员变量 列举常用的打印函数及区别 实现一个单例模式 调...

  • PHP之each()函数输出空白问题

    each()函数 (PHP 4, PHP 5, PHP 7) each — 返回数组中当前的键/值对并将数组指针向...

  • 2018 10 19

    继续学习常用php原生函数

  • php入门--数组

    在 PHP 中,array() 函数用于创建数组: 数值数组 在 PHP 中,有三种类型的数组:数值数组 - 带有...

  • PHP面试题2--常用的数组函数

    php常用数组函数 一,数组操作的基本函数 1. 数组的键名与值 array_values($arr); 获得...

  • PHP常用数组排序算法

    title: PHP常用数组排序算法tags: [PHP,数组,排序,算法] 这几天写到的代码中,用到了许多对数组...

  • 无标题文章

    PHP处理数组的常用函数?(重点看函数的‘参数’和‘返回值’) ①array()创建数组; ②count()返回数...

  • PHP处理数组的常用函数

    13、PHP处理数组的常用函数?(重点看函数的‘参数’和‘返回值’) (1)array() 创建数组 (2)in_...

  • PHP常用数组函数

    PHP数组常用函数分类整理 一、数组操作的基本函数 数组的键名和值 array_values($arr); 获得数...

网友评论

      本文标题:PHP中的常用数组函数解析 -- PHP 学习 (十四)

      本文链接:https://www.haomeiwen.com/subject/zlrjoqtx.html