根据PHP中另一列的值获取一个数组列

时间:2019-04-28 23:02:08

标签: php arrays array-filter

我有一个多列PHP数组

Array (
    Array ('col1', 'col2', 'col3'),
);

如果col2大于特定值,如何获得col1的数组?

我可以通过foreach循环来完成此操作,但是我认为应该可以使用array_filter之类的本机函数来实现。

1 个答案:

答案 0 :(得分:1)

简单地说,使用foreach循环会更好,因为您不必进行数组的多次迭代。您既要过滤也要修改数组,这需要同时使用array_filter()array_map()才能获得所需的内容:

<?php

$arr = [
    [5, 'col2-1', 'col3'],
    [10, 'col2-2', 'col3']
];

$res = array_filter($arr, function($item) {
    return $item[0] > 7;
});

$res = array_map(function($item) {
    return $item[1];
}, $res);

var_dump($res);

在这里测试:https://3v4l.org/HRTOJ