首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何定义if条件来检查array_key长度=13?

如何定义if条件来检查array_key长度=13?
EN

Stack Overflow用户
提问于 2018-03-29 12:59:14
回答 2查看 53关注 0票数 0

目前,我的“方法”检查array_key是否在数组中,我需要补充的是,如果键长度是13,就可以了,但是当它更长时,它必须删除列表中类似的前5个数字。我的代码根据数据库中的键搜索价格,并将其与“键”有点不同的列表进行比较。因此,为了更容易理解:

我的数据库中的关键是: 2840529503100

我必须得到价格的表中的键是: 000002840529503100,所以基本上我需要做的是从"list“或" table”中得到一个子字符串,它接受最后的13个数字,因为我的数据库中的正确键总是13个数字。

代码语言:javascript
复制
$teile = array();
while ($dbRow = $sqlres->fetch_assoc()) {

    $teile[$dbRow['nummer']] = $dbRow;

    if (array_key_exists($fileRow[0], $teile)) {
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-03-29 13:06:38

如果前5个0值是常数,则可以使用substr(),如下所示:

代码语言:javascript
复制
$str = '000002840529503100';
echo $str2 = substr($str, 5); 

substr()的另一种方法是只保留最后13位数字,如下所示:

代码语言:javascript
复制
$str = '000002840529503100';
echo $str2 = substr($str, -13);

否则,要删除前0值,可以使用如下所示的ltrim()

代码语言:javascript
复制
echo ltrim('000002840529503100', '0');

注意:如果没有引号,这两个函数就无法工作。

票数 0
EN

Stack Overflow用户

发布于 2018-03-29 13:12:17

作为纳温斯溶液的替代方案,您还可以使用PHP类型转换自动删除前导零。

注意:对于我的例子,我看不出您要更改哪个变量。但假设了第一个..。

因此:

代码语言:javascript
复制
$fileRow[0] = "000002840529503100"
(int)$fileRow[0] = "2840529503100";

这将使:

代码语言:javascript
复制
 if (array_key_exists((int)$fileRow[0], $teile)) {
    ...
 }

当心:

此示例不会更改$fileRow[0]的存储值,因此在将(int)版本设置为变量/键值之前,使用它作为未来的密钥引用(~print $array[$fileRow[0]])仍将使用较长的值。

代码语言:javascript
复制
$fileRow[0] = (int)$fileRow[0];
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49556725

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档