以下是我如何设置阵列:
$Post_Cat_Array = array();
while($row = mysql_fetch_array( $result )) {
$Post_Cat_Array[$row['type_id']] = $row['type_name'];}
在这个函数中,我需要获得特定type_name
(值)的type_id
(密钥)
function NameToID($input){
echo array_search($input, $Post_Cat_Array);
}
我这样调用函数:
NameToID($_POST['type']);
但它不起作用。它没有任何回声。我确信$_POST['type']
包含正确的值。
注:$_POST['type']
的值为阿拉伯语。与数组的所有值相同。
似乎$Post_Cat_Array
超出了范围。修改您的功能:
function NameToID($input, $arr){
echo array_search($input, $arr);
}
然后:
NameToID($_POST['type'], $Post_Cat_Array);
来自PHP变量范围:
此脚本不会产生任何输出,因为echo语句指的是(…)变量的本地版本,但它尚未在此范围内分配了一个值。
这是因为函数不知道数组变量。您可以使用以下任一项来实现
<?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);
}
?>