$l_arr )for键,其他数组用于值( $r_arr $map echo $map['key'] 输出为空,请帮助我,盖伊。这是代码和输出,
$l_arr
$r_arr
$map
echo $map['key']
<?php $handle = fopen ("php://stdin","r"); fscanf($handle,"%d",$n); for($i=0;$i<$n;$i++) { $arr_temp = fgets($handle); $l_arr[$i]= preg_replace("/[0-9,.]/", "", $arr_temp); $r_arr[$i]=preg_replace("/[^0-9,.]/", "", $arr_temp); } for($i=0;$i<$n;$i++) { $arr_temp = fgets($handle); $op[$i]=$arr_temp; } for($i=0;$i<$n;$i++) { $map[$l_arr[$i]]=$r_arr[$i]; } print_r($map); echo "value of sam is".$map['sam']; ?>
输出为
Array ( [sam ] => 99912222 [tom ] => 11122222 [harry ] => 12299933 ) value of sam is
正如您可能看到的,输出中有空格-请查看每个数组索引后的新行。你需要 trim() 你的 preg_replace() 在这里:
trim()
preg_replace()
$l_arr[$i] = trim(preg_replace("/[0-9,.]/", "", $arr_temp)); $r_arr[$i] = trim(preg_replace("/[^0-9,.]/", "", $arr_temp));