php - array_search在循环中不起作用

mm9b1k5b  于 2023-02-11  发布在  PHP
关注(0)|答案(3)|浏览(122)

我再次需要你的帮助。:/
我有一个循环,他们必须搜索值从一个数组到另一个数组,但这将不起作用。。如果我在循环外测试这个例子,所以工作我的代码。
下面是我在循环之外的示例:

$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
q9yhzks0

q9yhzks01#

可以使用array_column($colorNameFin, 'column_key')返回column_key列的所有值,并将它们赋给一个新变量,这将是一个数组。然后在数组$words中搜索$colorNameFin[$i]

<?php

$words = array_column($colorNameFin, 'column_key');
$found_key = array_search($colorNameFin[$i], $words);
hc8w905p

hc8w905p2#

@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];
}

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

euoag5mw

euoag5mw3#

只是在循环中取消设置数组。
喜欢
$代码=数组(“a”,“B”,“a”,“c”,“a”,“b”,“b”);//臭名昭著的abacabb致命格斗代码:-P
//这是错误的
while(($键=数组搜索(“a”,$代码))!=空)
{
//无限循环,不考虑未设置的
未设置($code[$key]);
}

相关问题