首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >php中的切片2d数组

php中的切片2d数组
EN

Stack Overflow用户
提问于 2016-11-18 08:50:37
回答 1查看 104关注 0票数 0

当所有列都是零时,是否有一种分割2d数组的方法?提亚

代码语言:javascript
复制
$cars = array(
    array('Cars', 0, 18, 2, 4, 0, 3, 0, 8),
    array('BMW', 0, 13, 2, 4, 0, 3, 0, 8),
    array('Saab', 0, 29, 2, 4, 0, 3, 0, 8),
    array('Land Rover', 0, 15, 2, 4, 0, 3, 0, 8),
    );

 echo '<table border="1">';
 foreach ($cars as $car) {
     echo '<tr>';
     foreach ($car as $key) {
         echo '<td>'.$key.'</td>';
     }
     echo '</tr>';
 }
 echo '</table>';
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-11-18 10:22:55

如果列中的每个值都具有0值,下面的代码将删除这些列。如果您有其他计划,如切片,您仍然可以使用代码来帮助您确定您想要的。

在实际打印数组之前,我会这样做,因为我不知道有什么函数可以这样做,所以您必须创建一个函数。

函数array_column()用于检索列,我将其与返回具有相同值的行的array_intersect()进行比较,并将其与表中的行数量进行比较。

代码语言:javascript
复制
$cols = count($cars[0]);
$rows = count($cars);
$filter = [0]; // add more unwanted values if you please

for($col=1; $col<$cols; $col++){ // skip index 0
    if(count(array_intersect(array_column($cars, $col), $filter))) == $rows){
        // We found a column "$col" where every value is "0".
        foreach($cars as $k => $arr){
            // Looping over the main array.
            unset($arr[$col]); // unset the cloned array.
            $cars[$k] = $arr;  // update the original array with new value.
        }
    }
}

现在您可以使用相同的代码打印您的表。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40672792

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档