无法从多维数组中获取价值

时间:2019-09-07 21:43:18

标签: php arrays json multidimensional-array

我有一个数组

Array ( 
[username] => abc123456, 
[password] => 9876543214, 
[json_input] => [{
"AWB_NUMBER":"8518049",
"ORDER_NUMBER":"TF6E9NRC3J51145",
"PINCODE":"110001"
}]
 )

我无法从 json_input

获取 PINCODE 的值
  

我已经尝试对 json_input 进行解码,因为它是已编码

2 个答案:

答案 0 :(得分:2)

好像您在json中有json。

假设您的json字符串是这样的:

$json_string = '{
    "username": "alpha_bravo",
    "password": "9ynyly89y8uvybiyg87yb",
    "json_input": "[{ 
\"AWB_NUMBER\": \"8542322212\",
\"ORDER_NUMBER\": \"K98S2PUN7H5X125\",
\"PRODUCT\": \"cod\",
\"CONSIGNEE\": \"ABC\",
\"PINCODE\": \"123456\",
\"COLLECTABLE_VALUE\": \"1000\",
\"DECLARED_VALUE\": \"1000\",
\"ACTUAL_WEIGHT\": \"0.74\",
\"LENGTH\": \"12\",
\"BREADTH\": \"5\",
\"HEIGHT\": \"2\",
\"ADDITIONAL_INFORMATION\": {
\"INVOICE_NUMBER\": \"8GC5C190626151125\",
\"INVOICE_DATE\": \"Sun-Sep-2019\"
}
}]"
}';

您首先要做的是像这样对初始有效载荷进行解码:

$result = json_decode($json_string);

然后您要像这样再次解码json输入字符串:

$json_input = json_decode($result->json_input);

现在,您的 PINCODE 值可以通过以下方式访问:

echo $json_input[0]->PINCODE;

如果您期望json_input数组中有多个元素,请对其进行迭代:

foreach ($json_input as $item) {
    echo $item->PINCODE . "<br>";
}

答案 1 :(得分:1)

您的JSON字符串格式不正确,因为json_input中的双引号用法错误。

您可以尝试对其进行修复,也可以只使用正则表达式提取所需的值:

preg_match('/"PINCODE": "(\d+)"/',$inputJsonString, $matches);
echo $matches[1];