PHP foreeach循环捕获前9个字符

时间:2016-04-14 11:03:54

标签: php

我有一个返回数据的MySQL查询,我运行一个foreach循环来回显结果。

每行数据都是一个字符串,并且在开头有一个唯一的标识符,长度为九(9)个字符。

我要做的是从每行中提取前九个字符并在$_GET请求中使用它。以下是我的工作数据。

Rows of data

每行的开头是唯一标识符(九个字符)示例:SeqID 0101。我是否可以提取该代码并在“查看”按钮的$_GET中使用它:

foreach ($row as $k => $v)
echo '<tr>
<td>'.$k.'</td>
<td>'.$v.'</td>
<td><a href="imaint_failed_items_group_iframe.php?Seq=<?php echo $identifier;?>" target="_self"><img src="../../../nav/images/view_button.png"/></a></td>
</tr>';

2 个答案:

答案 0 :(得分:4)

使用PHP substr()

string hex = "0BC9C82C5600A2448592D4E21285E292A2CCBC74454500";
//credits: http://stackoverflow.com/a/321404/5089204
var byteArray = Enumerable.Range(0, hex.Length / 2)
                            .Select(x => Convert.ToByte(hex.Substring(x * 2, 2), 16))
                            .ToArray();
int batchSize = 32768;
byte[] buf = new byte[batchSize];

using (MemoryStream result = new MemoryStream()) {
    using (DeflateStream deflateStream = new DeflateStream(new MemoryStream(byteArray), CompressionMode.Decompress)) {
        int bytesRead;
        while ((bytesRead = deflateStream.Read(buf, 0, batchSize)) > 0)
            result.Write(buf, 0, bytesRead);
    }
}
string s = System.Text.Encoding.Default.GetString(buf);

这将返回前9个字符。

new SqlBytes(buf)即将开始

AND $identifier = substr($v, 0, 9); 是字符长度。

答案 1 :(得分:1)

正如@Pupil已经说过你可以使用substr()

<?php foreach($row as $k => $v): ?>
    <tr>
        <td><?php echo $k; ?></td>
        <td><?php echo $v; ?></td>
        <td><a href="imaint_failed_items_group_iframe.php?Seq=<?php echo substr($k, 0, 9); ?>" target="_self"><img src="../../../nav/images/view_button.png"/></a></td>
    </tr>
<?php endforeach; ?>