如何在PHP中动态添加空格


How to Dynamically add spaces in PHP

我有这个数据数组:

 [0] => 15 10 010   Chainmesh Galv 50 x 2.50mm   900mm x 15m   ROLL   22.0
[1] => 15 10 020   Chainmesh Galv 50 x 2.50mm  1200mm x 15m   ROLL   29.0
[2] => 15 10 030   Chainmesh Galv 50 x 2.50mm  1500mm x 15m   ROLL   36.0
[3] => 15 10 040   Chainmesh Galv 50 x 2.50mm x 1800mm x 15m   ROLL   43.0
[4] => 15 10 050   Chainmesh Galv  50 x 2.50mm  2400mm x 15m   ROLL   54.0
[5] => 15 10 055   Chainmesh Galv 50 x 2.50mm x 3000mm x 15M   ROLL   71.0
[6] => 15 20 010   Chainmesh Galv 50 x 3.15mm  1200mm x 15m   ROLL   48.0
[7] => 15 20 020   Chainmesh Galv 50 x 3.15mm  1800mm x 15m   ROLL   72.0

我需要在下拉菜单中有这个输出:http://screencast.com/t/kWkUuBlq请查看下拉列表的间距,这是我的问题。

现在我有这行代码:

 foreach ($array2 as $key => $value) {
        $data3 = explode('   ', $value);
        for ($i=0; $i < count($data3) -1 ; $i++) { 
            echo $data3[$i];
        }
    }

我试着分解数组元素,并将其再次存储在新的数组中,间距与图像相同,但它给了我相同的小间距。非常感谢。

    <?php
    foreach ($array2 as $key => $value) {
        $data3 = explode(' ', $value);
        $tempData = array();
        for ($i=0; $i < count($data3); $i++) { 
            if(trim($data3[$i]) != ''){
                $tempData[] = trim($data3[$i]);
            }
        }
$array2[$key] = implode(' ', $tempData);
}
print_r($array2);
    ?>

输出:

Array
(
    [0] => 15 10 010 Chainmesh Galv 50 x 2.50mm 900mm x 15m ROLL 22.0
    [1] => 15 10 020 Chainmesh Galv 50 x 2.50mm 1200mm x 15m ROLL 29.0
    [2] => 15 10 030 Chainmesh Galv 50 x 2.50mm 1500mm x 15m ROLL 36.0
    [3] => 15 10 040 Chainmesh Galv 50 x 2.50mm x 1800mm x 15m ROLL 43.0
    [4] => 15 10 050 Chainmesh Galv 50 x 2.50mm 2400mm x 15m ROLL 54.0
    [5] => 15 10 055 Chainmesh Galv 50 x 2.50mm x 3000mm x 15M ROLL 71.0
    [6] => 15 20 010 Chainmesh Galv 50 x 3.15mm 1200mm x 15m ROLL 48.0
    [7] => 15 20 020 Chainmesh Galv 50 x 3.15mm 1800mm x 15m ROLL 72.0
)

试着用这个来转换成HTML,然后使用一些CSS来提供你想要的实际外观。

function insertHTML( $val ){
   return "<td>" . $val . "</td>";
}
// your array
$array2 = array(
    "15 10 010   Chainmesh Galv 50 x 2.50mm   900mm x 15m   ROLL   22.0", 
    "15 10 020   Chainmesh Galv 50 x 2.50mm   1200mm x 15m   ROLL   29.0");
$html = "";
foreach( $array2 as $val ){
  $array_line =  explode("   ", $val);
  $htmlArr = array_map( "insertHTML", $array_line );
  $html .= "<tr>'n" . implode( "'n", $htmlArr ) . "'n</tr>'n";
}
echo "<table>'n";
echo $html;
echo "</table>";

输出:

http://codepad.org/gWKMtMPv

注意:

如果没有适当的间距来使用explode()函数分解字符串,则无法实现这一点。

你可以试试这个

    <?php
    $a = array (0 => '15 10 010   Chainmesh Galv 50 x 2.50mm   900mm x 15m   ROLL   22.0',
1 => '15 10 020   Chainmesh Galv 50 x 2.50mm  1200mm x 15m   ROLL   29.0',
2=> '15 10 030   Chainmesh Galv 50 x 2.50mm  1500mm x 15m   ROLL   36.0',
3 => '15 10 040   Chainmesh Galv 50 x 2.50mm x 1800mm x 15m   ROLL   43.0',
4 => '15 10 050   Chainmesh Galv  50 x 2.50mm  2400mm x 15m   ROLL   54.0',
5 => '15 10 055   Chainmesh Galv 50 x 2.50mm x 3000mm x 15M   ROLL   71.0',
6 => '15 20 010   Chainmesh Galv 50 x 3.15mm  1200mm x 15m   ROLL   48.0',
7 => '15 20 020   Chainmesh Galv 50 x 3.15mm  1800mm x 15m   ROLL   72.0');
foreach($a as $key => $v){
echo '['.$key.']' .'='. preg_replace('/'s+/', ' ', $v).'<br>';  
}
?>

输出类似

[0]=15 10 010 Chainmesh Galv 50 x 2.50mm 900mm x 15m ROLL 22.0
[1]=15 10 020 Chainmesh Galv 50 x 2.50mm 1200mm x 15m ROLL 29.0
[2]=15 10 030 Chainmesh Galv 50 x 2.50mm 1500mm x 15m ROLL 36.0
[3]=15 10 040 Chainmesh Galv 50 x 2.50mm x 1800mm x 15m ROLL 43.0
[4]=15 10 050 Chainmesh Galv 50 x 2.50mm 2400mm x 15m ROLL 54.0
[5]=15 10 055 Chainmesh Galv 50 x 2.50mm x 3000mm x 15M ROLL 71.0
[6]=15 20 010 Chainmesh Galv 50 x 3.15mm 1200mm x 15m ROLL 48.0
[7]=15 20 020 Chainmesh Galv 50 x 3.15mm 1800mm x 15m ROLL 72.0

HTML下拉列表示例

<?php
$a = array (0 => '15 10 010   Chainmesh Galv 50 x 2.50mm   900mm x 15m   ROLL   22.0',
1 => '15 10 020   Chainmesh Galv 50 x 2.50mm  1200mm x 15m   ROLL   29.0',
2=> '15 10 030   Chainmesh Galv 50 x 2.50mm  1500mm x 15m   ROLL   36.0',
3 => '15 10 040   Chainmesh Galv 50 x 2.50mm x 1800mm x 15m   ROLL   43.0',
4 => '15 10 050   Chainmesh Galv  50 x 2.50mm  2400mm x 15m   ROLL   54.0',
5 => '15 10 055   Chainmesh Galv 50 x 2.50mm x 3000mm x 15M   ROLL   71.0',
6 => '15 20 010   Chainmesh Galv 50 x 3.15mm  1200mm x 15m   ROLL   48.0',
7 => '15 20 020   Chainmesh Galv 50 x 3.15mm  1800mm x 15m   ROLL   72.0');
echo '<select>';
foreach($a as $key => $v){
echo '<option value="'.$key.'">' . preg_replace('/'s+/', ' ', $v).'</option>';
}
echo '<select>';
?>