以下是我设置数组的方法:
$Post_Cat_Array = array();
while($row = mysql_fetch_array( $result )) {
$Post_Cat_Array[$row['type_id']] = $row['type_name'];}
在此函数中,我需要获取特定type_id
(值)的type_name
(键)
function NameToID($input){
echo array_search($input, $Post_Cat_Array);
}
我将这个函数称为:
NameToID($_POST['type']);
但它不起作用。它没有回应任何东西。我确信$_POST['type']
包含正确的值。
注意:$_POST['type']
的值是阿拉伯语。与数组的所有值相同。
答案 0 :(得分:1)
似乎$Post_Cat_Array
超出了范围。修改你的功能:
function NameToID($input, $arr){
echo array_search($input, $arr);
}
然后:
NameToID($_POST['type'], $Post_Cat_Array);
由于echo语句,此脚本不会产生任何输出 指的是(...)变量的本地版本,它还没有 在此范围内分配了一个值。
答案 1 :(得分:1)
这是因为你的函数不知道你的数组变量。您可以使用以下任一方法来实现
<?php
$Post_Cat_Array=array();
$Post_Cat_Array["key1"]="value1";
$Post_Cat_Array["key2"]="value2";
$Post_Cat_Array["key3"]="value3";
$Post_Cat_Array["key4"]="value4";
echo NameToID("value4");
echo "<br>";
echo NameToID2("value4",$Post_Cat_Array);
function NameToID($input){
global $Post_Cat_Array;
echo array_search($input, $Post_Cat_Array);
}
function NameToID2($input,$values){
echo array_search($input, $values);
}
?>