如何从数组/ json结构中的键回显特殊值

时间:2016-09-14 12:10:20

标签: php arrays json list

我可以轻松地探索json,例如:

foreach($json_a['somwhere'][1]['somwhere_deeper'] as $something){
    var_dump($something);
}

这段代码让我打印出这样的东西:

C:\wamp64\www\dothejob.php:7:
array (size=2)
  'name' => string 'John' (length=17)
  'value' => string '15' (length=4)
C:\wamp64\www\dothejob.php:7:
array (size=2)
  'name' => string 'Joanna' (length=6)
  'value' => string '23' (length=2)
C:\wamp64\www\dothejob.php:7:
array (size=2)
  'name' => string 'John' (length=17)
  'value' => string '55' (length=10)
C:\wamp64\www\dothejob.php:7:
array (size=2)
  'name' => string 'Joanna' (length=11)
  'value' => string '55' (length=5)

所以我确定我在一个正确的地方,但现在问题是如何只打印数组中的值,其名称是乔安娜?

我知道它应该很容易如果声明,但我不确定这些键/值是如何工作的,这很简单的问题,但我是初学者用php ... :) ps。我一直在寻求帮助,但还没有找到解决方案。

不能使用$ something [n],因为它们不是总是在同一个地方#34;所以只有正确的解决方案是这样的:

我正在寻找类似的东西:

if 'name' is 'Joanna':
print value of 'value'

2 个答案:

答案 0 :(得分:1)

您可以使用$something[n],因为您有一个关联数组:

foreach($json_a['somwhere'][1]['somwhere_deeper'] as $something){
    if ($something['name'] == 'Joanna') {
        var_dump($something);
    }
}

输出应为:

C:\wamp64\www\dothejob.php:7:
array (size=2)
  'name' => string 'Joanna' (length=6)
  'value' => string '23' (length=2)
C:\wamp64\www\dothejob.php:7:
array (size=2)
  'name' => string 'Joanna' (length=11)
  'value' => string '55' (length=5)

当然,如果您只想var_dump值,请使用var_dump($something['value'])

答案 1 :(得分:0)

您需要更新Variable

的命名范围
foreach($json_a['somwhere'][1]['somwhere_deeper'] as $key => $value){
    echo $key." : ".$value
}

上述代码的输出将是类似的 约翰:15 约翰娜:23

foreach(array as key => value)
{
 //key represent array key
//value represent value of that array
}

如有任何疑虑,请与我联系。