0

这是我设置数组的方式:

 $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']是阿拉伯语。与数组的所有值相同。

4

2 回答 2

1

这似乎$Post_Cat_Array超出了范围。修改你的功能:

function NameToID($input, $arr){
  echo array_search($input, $arr); 
}

接着:

NameToID($_POST['type'], $Post_Cat_Array);

PHP 变量范围

此脚本不会产生任何输出,因为 echo 语句引用 (...) 变量的本地版本,并且尚未在此范围内为其分配值。

于 2012-08-04T08:25:27.743 回答
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);  
} 
?>
于 2012-08-04T08:38:24.003 回答