为什么数组不能在我的php脚本中工作?

为什么数组不能在我的php脚本中工作?,php,arrays,Php,Arrays,我试图反转此字符串的键和值,但它似乎不起作用。可能是什么问题 $input = '"85"=>"1","86"=>"2","87"=>"3","88"=>"4","89"=>"5","90"=>"6","91"=>"7","92"=>"8","93"=>"9","94"=>"10","95"=>"11","96"=>"12","97"=>"13","98"=>"14","99"=>"15","100"=&g

我试图反转此字符串的键和值,但它似乎不起作用。可能是什么问题

$input = '"85"=>"1","86"=>"2","87"=>"3","88"=>"4","89"=>"5","90"=>"6","91"=>"7","92"=>"8","93"=>"9","94"=>"10","95"=>"11","96"=>"12","97"=>"13","98"=>"14","99"=>"15","100"=>"16","101"=>"17","102"=>"18","103"=>"19","104"=>"20","105"=>"21","106"=>"22","107"=>"23","108"=>"24","109"=>"25","110"=>"26","111"=>"27","112"=>"28","113"=>"29","114"=>"30","115"=>"31","116"=>"32","117"=>"33","118"=>"34","119"=>"35","120"=>"36","121"=>"37","122"=>"38","123"=>"39","124"=>"40","125"=>"41","126"=>"42","127"=>"43","128"=>"44","129"=>"45","130"=>"46","131"=>"47","132"=>"48","133"=>"49","134"=>"50","135"=>"51","136"=>"52","137"=>"53","138"=>"54","139"=>"55","140"=>"56","141"=>"57","142"=>"58","143"=>"59","144"=>"60","145"=>"61","146"=>"62","147"=>"63","148"=>"64","149"=>"65","150"=>"66","151"=>"67","152"=>"68","153"=>"69","154"=>"70","155"=>"71","156"=>"72","157"=>"73","158"=>"74","159"=>"75","160"=>"76","161"=>"77","162"=>"78","163"=>"79","164"=>"80","165"=>"81","166"=>"82","167"=>"83","168"=>"84","169"=>"85","170"=>"86","171"=>"87","172"=>"88","173"=>"89","174"=>"90","175"=>"91","176"=>"92","177"=>"93","178"=>"94","179"=>"95","180"=>"96","181"=>"97","182"=>"98","183"=>"99","184"=>"100","185"=>"101","186"=>"102","187"=>"103","188"=>"104","189"=>"105","190"=>"106","191"=>"107","192"=>"108","193"=>"109","194"=>"110","195"=>"111","196"=>"112","197"=>"113","198"=>"114","199"=>"115","200"=>"116","201"=>"117","202"=>"118","203"=>"119","204"=>"120","205"=>"121","206"=>"122","207"=>"123","208"=>"124","209"=>"125","210"=>"126"';
$result = array($input);
$result=array_flip($result);
print_r($result);
array($input)
不会返回您认为它会返回的内容<代码>数组不分析字符串。所以你必须先这么做。如果您的输入字符串不使用除键和值分开以外的任何地方,则可以替换为JSON,然后对其进行解码:

$result = json_decode("{" . str_replace("=>", ":", $input) . "}", true);
$result = array_flip($result);
print_r($result);

您可能没有意识到,但是您的
$result
数组只有一个元素,它是一个巨大的字符串,格式为
““85”=>“1”、“86”=>“2”…
。您必须像这样创建
$result
数组

$result = array("85"=>"1","86"=>"2","87"=>"3", ... );

您需要首先将输入处理到数组中,因为
array\u flip()
不适用于字符串,您可以先使用
分隔符将输入拆分为两个子部分,然后再使用
=>
分隔符进行第二次处理,这足以告诉您,您正在以错误的方式做正确的事情

正如所说,参数必须是数组,您不能将字符串作为此函数的参数传递。