【问题标题】:Php Json Get Value Array Index?Php Json获取值数组索引?
【发布时间】:2016-03-20 03:49:39
【问题描述】:

我有这个代码:

{"DT_RowId":"row_8","siparisler":{"id":"8","tarih":"14-12-2015","uid":"118","mid":"4","satis_fiyati":"5","adet":"7","odeme":"1","olusturan":"ares","sonduzenleyen":""},"urunler":{"urun_adi":"BANNER 100 AH","stok_kodu":"10010"},"musteriler":{"unvan":"3A Otomotiv San. Tic. Ltd. \u015eti."},"kdvsiz":"4.23728813559","kdv":"0.762711864407","top":"35"}

如何获取siparisler id 与数组索引?

$result2 = json_decode ($val,true);
return $result2[1][0];

我想用数组索引来获得它,因为我的 JSON 名称总是不同的。

或者我如何获得 if control 的第二个数组名称?

【问题讨论】:

  • json_decode 返回 StdClass
  • result2["siparisler"]["id"]
  • 是的安德鲁,但我的 siparisler 名称总是不同,我需要使用数组索引来获取
  • 或者我需要第二个数组名来控制 if ?
  • 或者在json_encode之前使用静态索引名称

标签: php arrays json indexing


【解决方案1】:

您可以使用array_values() 来规范化数组:

return array_values(array_values(json_decode($val, true))[1])[0];

array_values() 返回来自array 的所有值并以数字方式索引数组。

同样拆分成多个语句更清楚:

$result = json_decode($val, true);
$result = array_values($result)[1];
$result = array_values($result)[0];
return $result;

或者对于 PHP 5.3 及以下版本:

$result = json_decode($val, true);
$result = array_values($result);
$result = array_values($result[1]);
return $result[0];

【讨论】:

  • 这段代码对吗?因为我不断收到错误?谢谢
  • 您使用的是过时的 PHP 版本吗?数组解引用 (func()[]) 在 5.4 中引入
  • 5.3 不再受支持。请考虑更新到至少 5.5
  • 不过,我用 5.3 的解决方案更新了答案
  • 谢谢你,你太棒了。
猜你喜欢
  • 2016-02-03
  • 1970-01-01
  • 2011-09-17
  • 1970-01-01
  • 1970-01-01
  • 2016-06-25
  • 2017-10-17
  • 1970-01-01
  • 2015-09-16
相关资源
最近更新 更多