一、二维数组的基本定义
二维数组指的是一个数组中包含有另一个数组。在 PHP 中,创建二维数组的方式非常简单。可以直接在一个数组中使用数组声明语法来声明二维数组。
$arr = array(
array("apple", "orange"),
array("banana", "strawberry", "mango"),
array("grape")
);
上述示例中,我们创建了一个包含三个元素的数组,每个元素都是一个包含不等数量元素的数组。可以使用 print_r($arr) 函数来输出此数组。代码如下:
print_r($arr);
执行上述代码即可得到以下输出结果:
Array
(
[0] => Array
(
[0] => apple
[1] => orange
)
[1] => Array
(
[0] => banana
[1] => strawberry
[2] => mango
)
[2] => Array
(
[0] => grape
)
)
二、遍历二维数组
在遍历二维数组时,我们需要使用两个循环。外层循环用于遍历包含其他数组的数组,而内层循环用于遍历每个包含元素的数组。
foreach($arr as $value) {
foreach($value as $v) {
echo $v . " ";
}
echo "
";
}
执行上述代码可以得到以下输出结果:
apple orange
banana strawberry mango
grape
三、二维数组的排序
对于一个多维数组,我们可以使用 PHP 内置函数 sort、rsort、asort 和 arsort 来进行升序、降序、按键值升序和按键值降序排列。
$arr = array(
array("apple", "orange"),
array("banana", "strawberry", "mango"),
array("grape")
);
// 对数组进行排序
foreach ($arr as $key => $value) {
sort($arr[$key]);
}
// 输出排好序的数组
print_r($arr);
执行上述代码可以得到以下输出结果:
Array
(
[0] => Array
(
[0] => apple
[1] => orange
)
[1] => Array
(
[0] => banana
[1] => mango
[2] => strawberry
)
[2] => Array
(
[0] => grape
)
)
四、二维数组的过滤
PHP 中支持使用 array_filter 函数过滤二维数组。在数组过滤中,我们可以使用回调函数的方式来判断数组中的元素是否需要过滤。
$arr = array(
array("apple", "orange", "banana"),
array("banana", "strawberry", "mango"),
array("grape", "orange")
);
function filter($array) {
if (in_array("orange", $array)) {
return true;
} else {
return false;
}
}
$filteredArray = array_filter($arr, "filter");
print_r($filteredArray);
执行上述代码可以得到以下输出结果:
Array
(
[0] => Array
(
[0] => apple
[1] => orange
[2] => banana
)
[2] => Array
(
[0] => grape
[1] => orange
)
)
五、二维数组的搜索
使用 PHP 内置函数 array_search,我们可以轻易地在二维数组中搜索指定元素的位置。
$arr = array(
array("apple", "orange", "banana"),
array("banana", "strawberry", "mango"),
array("grape", "orange")
);
$needle = "banana";
// 遍历数组
foreach ($arr as $key => $value) {
// 搜索元素是否存在于数组中
if (array_search($needle, $value)) {
echo "元素 $needle 存在于数组位置:$key," . array_search($needle, $value) . "
";
}
}
执行上述代码可以得到以下输出结果:
元素 banana 存在于数组位置:0,2
元素 banana 存在于数组位置:1,0
结束语
本文对 PHP 二维数组进行了基本操作指南,包括定义、遍历、排序、过滤以及搜索。希望本文的内容能够帮助到 PHP 工程师们更好地掌握二维数组。
原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/227708.html
微信扫一扫
支付宝扫一扫