当所有列都是零时,是否有一种分割2d数组的方法?提亚
$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>';发布于 2016-11-18 10:22:55
如果列中的每个值都具有0值,下面的代码将删除这些列。如果您有其他计划,如切片,您仍然可以使用代码来帮助您确定您想要的。
在实际打印数组之前,我会这样做,因为我不知道有什么函数可以这样做,所以您必须创建一个函数。
函数array_column()用于检索列,我将其与返回具有相同值的行的array_intersect()进行比较,并将其与表中的行数量进行比较。
$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.
}
}
}现在您可以使用相同的代码打印您的表。
https://stackoverflow.com/questions/40672792
复制相似问题