首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在列表中签入一个变量?也不在名单上

如何在列表中签入一个变量?也不在名单上
EN

Stack Overflow用户
提问于 2012-10-06 17:31:43
回答 3查看 930关注 0票数 0

我有以下数组。

代码语言:javascript
复制
$ar = array("apple:3","banana:2","canopule:6","grapes:5","cherry:8");

如何检查以下变量

代码语言:javascript
复制
$a = "grapes";

在数组中(在本例中为grapes:5),如果是,则返回匹配的字符串。也就是说,“葡萄: 5”

如果它不在列表中(例如,匹配“草莓”),返回“草莓:未找到”。

我有这个:

代码语言:javascript
复制
for($i = 0; $i < count($ar); $i++) {
    list($name,$count)=explode(":",$ar[$i]);
    if($a==$name)
        echo "$a : $count";
    else
        echo "$a : not found!";
}

如果匹配的话,它就能正常工作。但如果不是,我会

草莓:没找到!

它返回每一个假案例,而不是只返回一个。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-10-06 17:35:48

就像这样:

代码语言:javascript
复制
$ar=array("apple:3","banana:2","canopule:6","grapes:5","cherry:8");
$a = "strawberry";
$result = '';
for($i=0;$i<count($ar);$i++){
    list($name,$count)=explode(":",$ar[$i]);
    if($a == $name){
        $result = "$a : $count";
        break;
    }
}

if($result){
    echo $result;
} else {
    echo $a." : Not found";
}

只要检查循环中是否有什么内容,如果是,打印结果,如果没有添加,没有找到。

票数 2
EN

Stack Overflow用户

发布于 2012-10-06 18:11:53

好吧,如果您没有被强制使用这样的数组,并且您是出于教育目的,那么尝试关联数组:那么代码看起来非常简单:

代码语言:javascript
复制
$ar = array("apple" => 3,"banana" => 2,"canopule" => 6,"grapes" => 5,"cherry" => 8);
$a = "grapes";

echo isset($ar[$a]) ? "$a : ".$ar[$a] : "$a : not found";

我知道你不是在问这个问题,但我想说的是,有时候想出存储数据的方法比想出新的算法要简单得多。

票数 2
EN

Stack Overflow用户

发布于 2012-10-06 17:41:55

另一种使用foreachsubstr的方法。

代码语言:javascript
复制
$ar = array("apple:3","banana:2","canopule:6","grapes:5","cherry:8");
$a = "cherry";    
$result = $a . ": not found";

foreach ($ar as $fruit) {
    if (substr($fruit,0,strpos($fruit,":")) == $a) {
        $result = $a . ": " . substr($fruit,strpos($fruit,":") + 1);
        break;
    } 
}

echo $result;

foreach迭代数组中的每个元素(也可以像foreach ($ar as $num => $fruit)一样用于区分键和值)。使用substr而不是explode只是为了说明分割像您这样的复合值的另一种方法。为了查找冒号的出现,字符串从开始使用chars拆分到n表示提取水果名的run1,使用chars n+1拆分到提取计数值的run2的末尾。记住,字符串中字符的索引从0开始。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12762134

复制
相关文章

相似问题

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