繁体   English   中英

打印嵌套数组php的值

[英]print values of a nested array php

首先让我说,我在这里经历了很多相关问题,但是没有一个解决我的问题。 我和db中的php嵌套数组,需要打印所有值。 输出打印出第一个最上面的数组(即“名称”,值“ Office,home”),但没有得到“ BB”中包含的嵌套数组值。这是我的代码:

function getTB($name='', $value='') {
$value    = json_decode($value);

$name = '';  $BB= ''; 
foreach ($value  as $key=>$val) {
    $name .= $val['name'].',';

JSON代码:

[{"name":"Office","TB":[{"date":[false,true],"time":"8:00 AM"}]},{{"days":[false,true],"time":"6:00 PM"},

使用array_walk_recursive

例如,如果您有这样的json(具有子数组)

$decoded = json_decode('{"abc": "one",
                         "def": "two",
                         "sub_array": {
                                 "ABC": "ONE"
                                 }}', true);

array_walk_recursive($decoded, function($value,$key) {
  echo $key.' :'.$value.'<br>';
});

输出将是

abc :one
def :two
ABC :ONE

所以用这样代替正常的foreach

更新

这样使用

$arr='[{"name":"Office","TB":[{"date":[false,true],"time":"8:00 AM"},{"days":[false,true],"time":"6:00 PM"}]}]';

$rr=json_decode($arr);

foreach ($rr[0]->TB as $key => $value) {
array_walk_recursive($value, function($k,$kk){
     echo 'Key is '.$kk.' & Value is '.$k.'<br>';   
});
}

输出:

Key is 0 & Value is 

Key is 1 & Value is 1

Key is time & Value is 8:00 AM

Key is 0 & Value is 

Key is 1 & Value is 1

Key is time & Value is 6:00 PM

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM