您的位置:

深入了解PHP中的array_values函数

在PHP中,数组是一个非常常用的数据类型,而array_values()函数是PHP中对数组进行操作的一个十分实用的函数。通过使用array_values()函数,可以返回给定数组中所有的值并且重新索引,而不保留原有的键名。

一、基本用法


$arr = array(
    'name' => 'Tom',
    'age' => 20,
    'gender' => 'male'
);
print_r(array_values($arr));

输出结果为:

Array
(
    [0] => Tom
    [1] => 20
    [2] => male
)

可以看到,经过array_values()函数处理后,数组中所有的键名都被去掉,仅仅保留了键值。

二、与foreach结合的使用

array_values()函数通常与foreach结合使用,以便进行数组的遍历操作。


$arr = array(
    'name' => 'Tom',
    'age' => 20,
    'gender' => 'male'
);
foreach(array_values($arr) as $value){
    echo $value . "<br>";
}

输出结果为:

Tom
20
male

可以看到,通过使用foreach和array_values()函数,我们可以遍历所有的值。

三、使用array_values()函数改变原有数组

在PHP中,函数通常是不会对原有的数组进行修改的,而是返回一个全新的数组作为输出。但是,使用array_values()函数,则可以改变原有数组。


$arr = array(
    'name' => 'Tom',
    'age' => 20,
    'gender' => 'male'
);
$arr = array_values($arr);
print_r($arr);

输出结果为:

Array
(
    [0] => Tom
    [1] => 20
    [2] => male
)

通过将array_values()函数返回的数组重新赋值给原有数组,我们就实现了改变原有数组。

四、处理多维数组

array_values()函数不仅可以处理一维数组,还可以处理多维数组。


$arr = array(
    'name' => 'Tom',
    'age' => 20,
    'gender' => 'male',
    'contacts' => array(
        'email' => 'tom@example.com',
        'phone' => '123456789'
    )
);
print_r(array_values($arr));

输出结果为:

Array
(
    [0] => Tom
    [1] => 20
    [2] => male
    [3] => Array
        (
            [0] => tom@example.com
            [1] => 123456789
        )
)

通过使用array_values()函数,我们可以获得多维数组中所有的值。

五、结合array_keys()函数使用

使用array_keys()函数可以获取数组中所有的键名。当配合使用array_values()函数时,可以实现对原有数组的重构。


$arr = array(
    'name' => 'Tom',
    'age' => 20,
    'gender' => 'male',
    'contacts' => array(
        'email' => 'tom@example.com',
        'phone' => '123456789'
    )
);
$arr = array_combine(array_values($arr), array_keys($arr));
print_r($arr);

输出结果为:

Array
(
    [Tom] => name
    [20] => age
    [male] => gender
    [Array] => contacts
)

通过结合使用array_values()和array_keys()函数,我们可以将原有数组的键名和键值互换。

六、总结

在PHP的开发过程中,array_values()函数是一项很实用的工具。通过使用array_values()函数,我们可以获得原有数组中的所有值,并且重新索引,方便遍历操作以及结合其他函数进行更复杂的操作。同时,array_values()函数也可以处理多维数组,具有很高的灵活性。