我想循环遍历我的表并将值与php包含的文件中的数组进行比较。如果匹配,则返回匹配项的数组键,并将其替换为表的值。我需要帮助从include文件返回数组键并将其与表值进行比较。
$myarray = array(
"12aaa"=>"hammer",
"22bbb"=>"pinchbar",
"33ccr"=>"wood" );
在我的循环中的单独文件
include 'myarray.inc.php';
while($row = $db->fetchAssoc()){
foreach($row as $key => $val)
if $val has a match in myarray.inc.php
{
$val = str_replace($val,my_array_key);
}
}
所以从本质上说,如果我的db表有锤子和木头,$ val将在循环中产生12aaa和3ccr。有帮助吗?非常感谢
答案 0 :(得分:2)
您正在寻找array_search
,它将返回与给定值相关联的密钥(如果存在)。
$result = array_search( $val, $myarray );
if ($result !== false) {
$val = $result;
}
答案 1 :(得分:0)
你的数组看起来应该是
$myarray = array(
"hammer"=>"11aaa",
"pinchbar"=>"22bbb",
"wood"=>"33ccr" );
和代码
if (isset($myarray[$key])){
//do stuff
}
答案 2 :(得分:0)
我认为你需要函数in_array($ val,$ myarray);
答案 3 :(得分:0)
如果你不想或不能改变像@genesis提议的$myarray
结构,你可以使用array_flip
include 'myarray.inc.php';
$myarray = array_flip($myarray);
while($row = $db->fetchAssoc()) {
foreach($row as $key => $val) {
if (isset($myarray[$val])) {
// Maybe you should use other variable instead of $val to avoid confusion
$val = $myarray[$val];
// Rest of your code
}
}
}