4.12 查找一个值在数组中的位置
使用 array_search()
方法在数组中查找一个值,如果找到了该值,返回相应的键;否则返回 false
:
<?php
$arr = ['Hello', 'World', 'p' => 'PHP', 'Node.js'];
$position = array_search('PHP', $arr);
if($position !== false) {
echo $position;
}
输出 p。注意:最好使用 array_search()
而不是 in_array()
来检查一个数组是否包含某个值,二者速度差别很小,但是 array_search()
可以提供额外信息(相应的键)。
4.13 查找满足某个条件的元素
使用 array_filter()
方法处理数组,例如查找票房大于两千五百万的电影信息:
<?php
$movies = [
['file'=>'Zootopia', 'box_office_gross'=>73700000],
['file'=>'London Has Fallen', 'box_office_gross'=>21710000],
['file'=>'Deadpool', 'box_office_gross'=>311160000],
['file'=>'Whiskey Tango Foxtrot', 'box_office_gross'=>7600000]
];
$flops = array_filter($movies, function($movie) { //使用匿名的回掉函数过滤数组中的单元
return ($movie['box_office_gross'] > 25000000) ? 1 : 0; //需要保留的值返回1,删除的值返回0
});
print_r($flops);
输出:
Array
(
[0] => Array
(
[file] => Zootopia
[box_office_gross] => 73700000
)
[2] => Array
(
[file] => Deadpool
[box_office_gross] => 311160000
)
)
4.14 查找数组中最大值或最小值元素
<?php
echo '<pre>';
$arr = [10, 3, 25, -9, 100, 50];
/*例1 使用max()找出数组中最大值的元素*/
echo max($arr),PHP_EOL; // 输出 100
/*例2 使用min()找出数组中最小值的元素*/
echo min($arr),PHP_EOL; //输出-9
/*例3 使用array_keys()找出数组中最大值元素的索引*/
print_r(array_keys($arr, max($arr), true));
//输出 Array([0] => 4)
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。