PHP的数组操作

简介:

1. 初始化

1.1 array()枚举成员


$products = array('Tires', 'Oil', 'Spark Plugs');
$prices = array('Tires' => 12, 'Oil' => 7.5, 'Spark Plugs' => 32);

1.2 range()生成

     range(start, end, step = 1)


$odds = range(1, 10, 2);
$letters = range('a', 'z');

2. 访问元素


echo $products[2];
$products[8] = 'Yes';

   数组的Key不必是连续的。它更像是个 Key --> Value 的映射表。

3. 循环访问

    可以用 foreach 与 list() 和  each() 结构。


foreach ($prices as $key => $value) {
    echo $key . ' - ' . $value . '<br/>'; 
}

while ($element = each($prices)) {
    echo $element['key'];
    echo ' - ';
    echo $element['value'];
    echo '<br/>';
}

while (list($product, $price) = each($prices)) {
    $echo "$product - $price<br/>";
}

    其实在数组中一个pos迭代器,初始为第一个元素。
    每次each($prices) 时都会返回当前pos所指向的数组元素,并将pos指向下一个元素位置。
    如果已经访问到最后一个元素了,那么 each($prices) 返回空值,于是while() 循环退出。
    在每次开始循环前应使用 reset($prices), 将数组中的pos置为第一个元素的位置。

4. PHP数组支持嵌套数组实现多维数组


$products = array (
    array('TIR', 'Tires', 100),
    array('OIL', 'Oil', 10),
    array('SPK', 'Spark Plugs', 4)
);

5. 数组排序

5.1 sort()函数

    sort(array, method=SORT_REGULAR)

    array为需要排序的数组,method为排序方法,默认为SORT_REGULAR,还可以是SORT_NUMERIC与SORT_STRING,表示是按数值排序还是字符串大小进行排序。
    sort() 函数会影响转入的数组。

5.2 asort()与ksort()函数

    asort()是按数组值进行排序,ksort()是按数组Key进行排序。

5.3 反向排序

     以此对应的反向排序有 rsort(), arsort(), krsort()

5.4 自定义排序 usort()

    usort(数组, 比较函数)

6. 数组其它操作

6.1 each(), current(), reset(), end(), next(), pos(), prev()

    each()与next()功能相似,each()是返回pos相前元素,然后将pos移向下一个元素。而next()则是先移到下一个元素移置,再返回pos所指的元素。
    current()则返回当前pos所指的元素。
    reset()将pos重置到第一个元素,而end()则是将pos指向最后一个元素。
    prev()可以与end()配合使用,就像next()与reset()那样。

6.2 数组遍历 array_walk()

    bool array_walk(array arr, string func, [mixed userdata])


function my_print($value) {
    echo "$value<br/>";
}
array_walk($array, 'my_print');

   ??为什么回调函数传的是字符串??

6.3 统计元素

    count(), sizeof(), array_count_values()

    count(), sizeof() 都是返回数组元素个数
    array_count_values() 是统一数组成元素的重复次数,并生成以元素为key,重复次数为value的新数组。

6.4 将数组转换成变量

    extract(array var_array [, int extract_type] [, string prefix]);


$arr = array('VAR1' => 12, 'Name' = "Hevake");
extract($arry);
echo "$VAR1, $Name";


目录
相关文章
|
10月前
|
PHP
php数组随机排序
PHP中对数据进行随机排序
|
13天前
|
Serverless PHP
【PHP常用函数封装】 php 判断两个数组所有的值是否是完全相等
【PHP常用函数封装】 php 判断两个数组所有的值是否是完全相等
19 3
|
13天前
|
Serverless PHP
【PHP常用函数封装】 php 判断a数组里是否完全包含b数组
【PHP常用函数封装】 php 判断a数组里是否完全包含b数组
15 1
|
13天前
|
算法 测试技术 PHP
通过阶乘获取一个一维PHP数组中全部的组合情况
在PHP中,`FactorialHandler`类通过递归实现了数组的全组合,`getArrAllCombineByFactor`方法逐个添加元素至所有子组合中。示例代码展示了一个包含组合生成的过程,输出了所有可能的排列。此外,还提供了一个深度优先搜索的递归函数`depth_picker`,用于生成数组的所有组合,从选择单个元素到选择所有元素。这两个示例揭示了递归在处理数组组合问题中的应用,常见于算法设计和测试用例生成。
9 0
通过阶乘获取一个一维PHP数组中全部的组合情况
|
12天前
|
存储 PHP 索引
|
2月前
|
存储 PHP 数据库
【PHP开发专栏】PHP数组操作与常见函数
【4月更文挑战第29天】本文介绍了PHP中的数组及其操作,包括定义与初始化、访问与修改、遍历。还探讨了常用的数组函数,如count()、in_array()、array_push/pop()、array_shift/unshift()、array_merge()、array_keys/values()以及sort()和rsort(),帮助开发者更有效地处理和操作数组。
php案例:自己写个数组转换成对象 对象转换成数组的的功能出来吧
php案例:自己写个数组转换成对象 对象转换成数组的的功能出来吧
php案例:自己写个数组转换成对象 对象转换成数组的的功能出来吧
|
2月前
|
JSON PHP 数据格式
php 删掉空的数组 json数据. 空数据(false 0 ““ null)
php 删掉空的数组 json数据. 空数据(false 0 ““ null)
php 删掉空的数组 json数据. 空数据(false 0 ““ null)