2012-03-23 105 views
-2

我试图从用json格式化的数组中取出一个键(状态)。PHP从数组解析JSON

阵列

Array ([0] => Running correlate.sh [1] => /var/www/html/blah/Correlation/classes [2] => Executing java command with JSON pps null 93993939 John Smith John Smith 1234 M 01-1-1990 [3] => last name is SMITH [4] => configFilePath is null [5] => feedName is pps [6] => [7] => select distinct(null), guid , scx_eid, emplid, national_ID, last_name, birthdate, first_name from table_a where guid is not null and (scx_eid = '12345678' or emplid = 'null' or (substr(national_ID,length(national_ID)-3,4) = '1234' and upper(last_name) = 'SMITH') or (substr(national_ID, length(national_ID)-3,4) = '1234' and birthdate = '90-null-01-1') or (birthdate = '90-null-01-1' and upper(last_name) = 'SMITH') or (upper(first_name) = 'JOHN' and upper(last_name) = 'ZSCHEILE')) [8] => first match {} [9] => [10] => select distinct(null), guid , eid, last4ssn, lastname, dob, firstname from table_c where guid is not null and (eid = '12345678' or (substr(last4ssn,length(last4ssn)-3,4) = '1234' and upper(lastname) = 'SMITH') or (substr(last4ssn, length(last4ssn)-3,4) = '1234' and dob = '90-null-01-1') or (dob = '90-null-01-1' and upper(lastname) = 'SMITH') or (upper(firstname) = 'JOHN' and upper(lastname) = 'SMITH')) [11] => second match {} [12] => [13] => select distinct(null), guid , eid, emplid from table_d where guid is not null and (eid = '12345678' or emplid = 'null') [14] => third match {} [15] => ldapMatch list is null [16] => returning firstMatch as {} [17] => [18] => Final Status:{Status=DISPUTED, GUID=[]} [19] => {"Status":"DISPUTED","GUID":[]}exiting script) 

我需要什么

$status = 'DISPUTED'; 

更新

我能够改变Java因此它输出低于此。我怎么能爆炸这个获得两个变量,$状态和$ GUID?

{"Status":"DISPUTED","GUID":[]} 
{"Status":"CONFIRMED","GUID":[G010908712]} 
{"Status":"DISPUTED","GUID":[]} 
{"Status":"DISPUTED","GUID":[]} 
{"Status":"CONFIRMED","GUID":[G403057017]} 
{"Status":"CONFIRMED","GUID":[G104522939]} 
{"Status":"CONFIRMED","GUID":[G020669940]} 
+0

你会得到什么结果?你期待什么结果? – Brian 2012-03-23 18:04:09

+0

没有设置。我期望$状态= DISPUTED – Jeffrey 2012-03-23 18:09:28

回答

1

如果字符串exiting script是真的在你的JSON会误事的结束。否则,json_decode需要第二个参数来指定你想要一个数组,而不是一个对象:

$json_a = json_decode($array[19], true); 
+0

是的退出脚本真的在最后 – Jeffrey 2012-03-23 18:18:16

+0

@Jeffrey你需要找出它来自哪里,然后将其删除,因为它使你的JSON无效,所以json_decode无法使用它。如果你愿意的话,你可以将它剥离,但这是一个更加棘手的临时解决方案。如果你真的想解决问题,找出它来自哪里。 – Paulpro 2012-03-23 18:28:30

+0

我改变了java,以便它返回数组的最后一行为json。我尝试了上面的代码,但它只获取DISPUTED。 – Jeffrey 2012-03-23 19:17:10