nad*_*dav 2 php arrays multidimensional-array
我在php中有这个数组,
$mainArray = array(
array("apple","two", "grren"),
array("samsung","five", "red"),
array("microsoft","one","gray"),
array("apple","nine", "blue"),
array("samsung","ten", "white"),
array("nokia","seven", "yellow")
);
Run Code Online (Sandbox Code Playgroud)
我可以轻松地遍历它并提取每个数组的所有第一个条目,如下所示:
foreach($mainArray as $w => $n) {
$whatever = $mainArray[$w][0];
}
Run Code Online (Sandbox Code Playgroud)
我正在尝试计算每个数组的第一个元素中有多少条目是相同的,并且结果类似于:
apple (2)
samsung (2)
microsoft (1)
nokia (1)
Run Code Online (Sandbox Code Playgroud)
我只是不确定这样做的正确方法是什么.
先感谢您.
print_r(
array_count_values(
array_map('array_shift', $mainArray)
)
);
Run Code Online (Sandbox Code Playgroud)
输出(演示):
Array
(
[apple] => 2
[samsung] => 2
[microsoft] => 1
[nokia] => 1
)
Run Code Online (Sandbox Code Playgroud)
所以,即使我是一个忠实的粉丝foreach,为什么我不在这里使用它?
首先,要计算数组中的值,我们在PHP中array_count_values.它为我们工作.
因此,剩下的唯一问题是将所有第一项都放入数组中以计算它们array_count_values.这是一个典型的映射工作,我也喜欢映射,foreach所以我尝试了如果array_map一起array_shift工作 - 它确实如此.
但是,您可能希望查找名为的函数array_column.PHP本身尚不可用,但在另一个答案中作为PHP代码:
$counts = array_count_values(array_column($mainArray, 0));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
997 次 |
| 最近记录: |