07-PHP使用过的函数 61-70

 61、array_count_values 

返回一个数组: 数组的键(必须是 int 或 string)是 array 里单元的值; 数组的值是 array 单元的值出现的次数。

<?php
$array = array(1, "hello", 1, "world", "hello");
print_r(array_count_values($array));
?>

 以上例程会输出:

Array
(
    [1] => 2
    [hello] => 2
    [world] => 1
)

 62、array_product

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

<?php

$a = array(2, 4, 6, 8);
echo "product(a) = " . array_product($a) . "\n";
echo "product(array()) = " . array_product(array()) . "\n";

?>
product(a) = 384
product(array()) = 1

63、array_push

将 array 当成一个栈,并将传入的变量压入 array 的末尾。array 的长度将根据入栈变量的数目增加。

注意: 如果用 array_push() 来给数组增加一个单元,还不如用 $array[] = ,因为这样没有调用函数的额外负担。 

<?php
$stack = array("orange", "banana");
array_push($stack, "apple", "raspberry");
print_r($stack);
?>
Array
(
    [0] => orange
    [1] => banana
    [2] => apple
    [3] => raspberry
)

64、array_pop 

弹出并返回 array 最后一个元素的值,并将 array 的长度减一。

<?php
$stack = array("orange", "banana", "apple", "raspberry");
$fruit = array_pop($stack);
print_r($stack);
?>
Array
(
    [0] => orange
    [1] => banana
    [2] => apple
)

65、array_unshift

将传入的单元插入到 array 数组的开头。注意单元是作为整体被插入的,因此传入单元将保持同样的顺序。所有的数值键名将修改为从零开始重新计数,所有的文字键名保持不变。

<?php
$queue = array("orange", "banana");
array_unshift($queue, "apple", "raspberry");
print_r($queue);
?>
Array
(
    [0] => apple
    [1] => raspberry
    [2] => orange
    [3] => banana
)

 66、array_shift

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

<?php
$stack = array("orange", "banana", "apple", "raspberry");
$fruit = array_shift($stack);
print_r($stack);
?>

以上例程会输出: 

Array
(
    [0] => banana
    [1] => apple
    [2] => raspberry
)

67、sort 

对数组升序排序

 示例1:

<?php

$fruits = array("lemon", "orange", "banana", "apple");
sort($fruits);
foreach ($fruits as $key => $val) {
    echo "fruits[" . $key . "] = " . $val . "\n";
}

?>

以上例程会输出: 

fruits[0] = apple
fruits[1] = banana
fruits[2] = lemon
fruits[3] = orange

fruits 被按照字母顺序排序。

示例2:不区分大小写自然排序的例子

<?php

$fruits = array(
    "Orange1", "orange2", "Orange3", "orange20"
);
sort($fruits, SORT_NATURAL | SORT_FLAG_CASE);
foreach ($fruits as $key => $val) {
    echo "fruits[" . $key . "] = " . $val . "\n";
}

?>

以上例程会输出: 

fruits[0] = Orange1
fruits[1] = orange2
fruits[2] = Orange3
fruits[3] = orange20

和大多数 PHP 排序函数一样,sort() 使用了 » 快速排序 实现的。 在已排序的数组分片的中间,选择基准值,具有最优时间。 但不应该依赖它实现的细节。 

示例3:

//数组的排序
$arr = [30,4,82,15,20,'abc','hello',2,46];
printf('<pre>%s</pre>',print_r($arr,true));

//默认排序:升序(键名自动重置)sort()
sort($arr);

printf('<pre>%s</pre>',print_r($arr,true));

以上例程会输出: 

Array
(
    [0] => 30
    [1] => 4
    [2] => 82
    [3] => 15
    [4] => 20
    [5] => abc
    [6] => hello
    [7] => 2
    [8] => 46
)
Array
(
    [0] => abc
    [1] => hello
    [2] => 2
    [3] => 4
    [4] => 15
    [5] => 20
    [6] => 30
    [7] => 46
    [8] => 82
)

68、asort

对 array 自身按照升序进行排序,并依然保持数组的键与值的关联。

主要用于对那些单元顺序很重要的关联数组进行排序。

<?php
$fruits = array("d" => "lemon", "a" => "orange", "b" => "banana", "c" => "apple");
asort($fruits);
foreach ($fruits as $key => $val) {
    echo "$key = $val\n";
}
?>

以上例程会输出:

c = apple
b = banana
d = lemon
a = orange

fruits 被按照字母顺序排序,并且值与索引的关系不变。

 69、rsort

对 array 本身按照值(value)降序排序,键名自动重置。

注意:

如果两个成员完全相同,那么它们将保持原来的顺序。 在 PHP 8.0.0 之前,它们在排序数组中的相对顺序是未定义的。

注意: 此函数为 array 中的元素赋与新的键名。这将删除原有的键名,而不是仅仅将键名重新排序。

注意:

重置数组中的内部指针,指向第一个元素。

<?php
$fruits = array("lemon", "orange", "banana", "apple");
rsort($fruits);
foreach ($fruits as $key => $val) {
    echo "$key = $val\n";
}
?>

以上例程会输出:

0 = orange
1 = lemon
2 = banana
3 = apple

fruits 被按照字母顺序逆向排序。

70、arsort 

对 array 本身按照降序排序。 并保持数组的键与值之间的关联。

主要用于对那些单元顺序很重要的结合数组进行排序。

<?php
$fruits = array("d" => "lemon", "a" => "orange", "b" => "banana", "c" => "apple");
arsort($fruits);
foreach ($fruits as $key => $val) {
    echo "$key = $val\n";
}
?>

 以上例程会输出:

a = orange
d = lemon
b = banana
c = apple

 fruits 被按照字母顺序逆向排序,并且单元的索引关系不变。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

七色的天空

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值