php – 需要有关如何使用数组操作来创建表的帮助?

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了php – 需要有关如何使用数组操作来创建表的帮助?脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
我有两个总是具有相同长度的数组:

$unIT = array('a','b','c','d','a','d');
$tyPE = array('x','y','z','x','x');

也可能有更多类型的单位或类型.例如:单位可能是5而不是4(a,b,c,d)或类型可能是5而不是3(x,y,z).但是两个数组的长度是相同的.

现在有了这些数据,我想创建一个这样的表:

x     y     z     
a  1     1  
b        1     1
c              1
d  2

到目前为止我做了什么:

$TYPE = array_values(array_unique($type));
$UNIT = array_values(array_unique($unit));

这两个将提供第一列和第一行.

echo "<table border='1' cellpadding='5' cellspacing='0' style='border-collapse:collapse;'>"; 
   echo "<tr><td>" . '  '  . "</td>";
   $lengthtype = count($TYPE);
   for($i=0; $i<$lengthtype; $i++)
   {
       echo "<td>" . $TYPE[$i] . "</td>";
   }
   echo "</tr>";        
   $unitlength = count($UNIT);
   for($i=0; $i<$unitlength;$i++)
   {
     echo "<tr>";
     echo "<td>" . $UNIT[$i] . "</td>";
     echo "</tr>";
   }  
echo "</table>";

我想我需要将两者结合起来创建2D数组,所以我这样做了:

$newarray = array();
foreach($type as $key=>$val)
{
    $newarray[$key][]=$val;
    $newarray[$key][]=$unit[$key];
}

现在我无法确定有效的方法是什么

如果你们可以提供任何非常好的提示.

更新:

我的问题是如何在第二个块中创建一个表.要清楚的是,1和2是数字,空格可以为零.

解决方法

应该适合你:

开始时,您可以使用for循环一次循环遍历两个数组并创建一个数组,其中每个$TYPE是subArray的键,并在每个subArray中计算哪个$UNIT出现在同一位置.

意味着你创建一个这样的数组:

Array
(
   //↓ Each '$TYPE'
    [x] => Array
        (
            [a] => 1
            [d] => 2
           //↑     ↑ Amount
           //Each '$UNIT',which occurs at the same position as this type 
        )

    [y] => Array
        (
            [b] => 1
            [a] => 1
        )

    [z] => Array
        (
            [c] => 1
            [b] => 1
        )

)

在此之后,它只是根据您的需要打印数据.为此,您将遍历array_unique()所获得的所有唯一$UNITS.对于每个单元,您循环遍历所有唯一的$TYPE.在那里你只需要检查数组中是否有元素并打印出来.

码:

<?PHP

    $UNIT = array('a','d');
    $TYPE = array('x','x');

    $count = [];

    for($i = 0,$length = count($UNIT); $i < $length; $i++) {
        if(!isset($count[$TYPE[$i]][$UNIT[$i]]))
            $count[$TYPE[$i]][$UNIT[$i]] = 0;
        $count[$TYPE[$i]][$UNIT[$i]]++;
    }


    echo "<table border='1' cellpadding='5' cellspacing='0' style='border-collapse:collapse;'>";
    echo "<tr><td></td><td>" . implode("</td><td>",array_unique($TYPE)) . "</td></tr>";
    foreach(array_unique($UNIT) as $key){
        echo "<tr><td>$key</td>";
        foreach(array_unique($TYPE) as $v)
            echo "<td>" . (isset($count[$v][$key]) ? $count[$v][$key] : "") . "</td>";
        echo "<tr>";
    }
    echo "</table>";

?>

输出

x   y   z
a   1   1   
b       1   1
c           1
d   2

脚本宝典总结

以上是脚本宝典为你收集整理的php – 需要有关如何使用数组操作来创建表的帮助?全部内容,希望文章能够帮你解决php – 需要有关如何使用数组操作来创建表的帮助?所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。