首页 > 解决方案 > php - array_search 在循环中不起作用

问题描述

我再次需要你的帮助.. :/

我有一个循环,他们必须从另一个数组中的一个数组中搜索值,但这不起作用..如果我在循环之外测试这个示例,那么请使用我的代码..

这是我在循环外的示例:

$lol = array_search("terra",$alleFarben);
echo("LOOL: ".$lol);

output:
LOOL: 195

但是,如果我循环执行此操作,他找不到 195 .. :

loop:

for ($i=0; $i <count($colorNameFin) ; $i++) {

$colorNameFin[$i] = strtolower($colorNameFin[$i]);
echo($colorNameFin[$i]);
$pos = array_search($colorNameFin[$i],$alleFarben);
echo("<br>");
echo($pos);
echo("<br>");
}
output:
terra 

artikel
156

artikel 是数组“colorNameFin”中的下一个条目。而且我无法理解,为什么 array_search 在循环之外而不是内部找到我的“terra”。

感谢阅读:)

更新:

我有三个数组

1. colorNameFin = read color names from a csv like terra or blue fog and so on..
2. alleFarben = contains all of this colours on a specific position, like terra in colorNameFin = 195 in alleFarben
3. farbenNormal = contains the correct color to terra on the same position where it stored in alleFarben so i can read terra and search in farbenNormal[195] = yellow if i read terra in colorNameFin

标签: phparrayssearch

解决方案


@Nick 给了我正确的提示,我在数组 alleFarben 中搜索的字符串包含一个空格。所以无法在数组 alleFarben 中找到 array_search 正确的字符串,我对这个问题的解决方法在这里:

for ($i=0; $i <count($colorNameFin) ; $i++) { 
$colorNameFin[$i] = strtolower($colorNameFin[$i]);
$colorNameFin[$i] = str_replace(' ','',$colorNameFin[$i]);

$pos = array_search($colorNameFin[$i],$alleFarben);
$colorOut[$i] = $farbenNamenNormal[$pos];
}

感谢所有考虑过我的问题的人:)


推荐阅读