目前,我的“方法”检查array_key是否在数组中,我需要补充的是,如果键长度是13,就可以了,但是当它更长时,它必须删除列表中类似的前5个数字。我的代码根据数据库中的键搜索价格,并将其与“键”有点不同的列表进行比较。因此,为了更容易理解:
我的数据库中的关键是: 2840529503100
我必须得到价格的表中的键是: 000002840529503100,所以基本上我需要做的是从"list“或" table”中得到一个子字符串,它接受最后的13个数字,因为我的数据库中的正确键总是13个数字。
$teile = array();
while ($dbRow = $sqlres->fetch_assoc()) {
$teile[$dbRow['nummer']] = $dbRow;
if (array_key_exists($fileRow[0], $teile)) {发布于 2018-03-29 13:06:38
如果前5个0值是常数,则可以使用substr(),如下所示:
$str = '000002840529503100';
echo $str2 = substr($str, 5); substr()的另一种方法是只保留最后13位数字,如下所示:
$str = '000002840529503100';
echo $str2 = substr($str, -13);否则,要删除前0值,可以使用如下所示的ltrim():
echo ltrim('000002840529503100', '0');注意:如果没有引号,这两个函数就无法工作。
发布于 2018-03-29 13:12:17
作为纳温斯溶液的替代方案,您还可以使用PHP类型转换自动删除前导零。
注意:对于我的例子,我看不出您要更改哪个变量。但假设了第一个..。
因此:
$fileRow[0] = "000002840529503100"
(int)$fileRow[0] = "2840529503100";这将使:
if (array_key_exists((int)$fileRow[0], $teile)) {
...
}当心:
此示例不会更改$fileRow[0]的存储值,因此在将(int)版本设置为变量/键值之前,使用它作为未来的密钥引用(~print $array[$fileRow[0]])仍将使用较长的值。
$fileRow[0] = (int)$fileRow[0];https://stackoverflow.com/questions/49556725
复制相似问题