简体   繁体   English

在php中访问多维数组?

[英]Access multidimensional array in php?

 array(10) {
  ["table_name"]=>
  string(0) ""
  ["chart_type"]=>
  string(5) "Table"
  ["chart_name"]=>
  string(9) "Veterans "
  ["dashboard_name"]=>
  string(7) "Default"
  ["data_option"]=>
  string(0) ""
  ["limit_value"]=>
  string(1) "0"
  ["view_status"]=>
  bool(true)
  ["view_priority"]=>
  string(0) ""
  ["chart_data"]=>
  array(72) {
    [0]=>
    array(11) {
      [0]=>
      string(4) "Rank"
      [1]=>
      string(6) "Branch"
      [2]=>
      string(12) "Level 3 Name"
      [3]=>
      string(12) "Level 4 Name"
      [4]=>
      string(23) "Logged Premia Score MTD"
      [5]=>
      string(26) "Converted Premia Score MTD"
      [6]=>
      string(21) "Persistancy Score MTD"
      [7]=>
      string(23) "Logged Premia Score YTD"
      [8]=>
      string(26) "Converted Premia Score YTD"
      [9]=>
      string(21) "Persistancy Score YTD"
      [10]=>
      string(5) "Score"
    }
    [1]=>
    array(11) {
      [0]=>
      float(1)
      [1]=>
      string(22) " GWALIOR DIRECTSegment"
      [2]=>
      string(29) "G00563 - GOVIND SINGH KUSHWAH"
      [3]=>
      string(21) "S03643 - Shishir Jain"
      [4]=>
      float(1)
      [5]=>
      float(1)
      [6]=>
      float(1)
      [7]=>
      float(0.9994)
      [8]=>
      float(1)
      [9]=>
      float(1)
      [10]=>
      float(9.89901)
    }
    [2]=>
    array(11) {
      [0]=>
      float(2)
      [1]=>
      string(26) " KURUKSHETRA DIRECTSegment"
      [2]=>
      string(23) "A02311 - Amarjeet Singh"
      [3]=>
      string(21) "S00927 - Sachin Kumar"
      [4]=>
      float(1)
      [5]=>
      float(1)
      [6]=>
      float(1)
      [7]=>
      float(0.953)
      [8]=>
      float(1)
      [9]=>
      float(1)
      [10]=>
      float(9.82245)
    }

  }
  ["color_scheme_name"]=>
  string(7) "Default"
}

How do i display the chart_data in php 我如何在PHP中显示chart_data

      $arr=json_decode($row[0],TRUE);

         var_dump($arr);

         foreach($arr as $row)
{
       foreach($row['chart_data'] as $k)
       {
             echo $k['Rank'];
             echo $k['Branch'];
       }
}

EDIT: 编辑:

for ($x=0; $x<=count
($arr['chart_data']); $x++) {

foreach($arr['chart_data'][$x] as $key=>$val)
{


  echo $val;
}
}

You are having 2 foreach calls. 您正在进行2个foreach呼叫。

The first one passes all keys of the outer array, amongst which chart_data . 第一个传递外部数组的所有键,其中chart_data

The second one looks at the children of the outer array, and looks for chart_data in each child. 第二个查看外部数组的子级,并在每个子chart_data中查找chart_data But is obviously not finding any. 但是显然找不到任何东西。

Change your code to this: 将代码更改为此:

$arr=json_decode($row[0],TRUE);
foreach($arr['chart_data'] as $k){
    echo $k['Rank'];
    echo $k['Branch'];
}

edit: 编辑:

I see. 我懂了。 (Thanks for indenting your array) Your problem is off course that $arr['rank'] and $arr['branch'] don't exist. (感谢您对数组进行缩进)您的问题当然是$arr['rank']$arr['branch']不存在。 They are mere strings inside $k[0] and $k[1] and themselves don't contain any other data. 它们只是$k[0]$k[1]中的字符串,它们本身不包含任何其他数据。

What would you have like to see outputted? 您想看到什么输出?

Maybe this is solution. 也许这是解决方案。

$arr = json_decode($row[0],TRUE);

foreach($row['chart_data'] as $chart_data)
{
    foreach($chart_data[0] as $k)
    {
        echo $k['Rank'];
        echo $k['Branch'];
    }
}

Update : 更新

Rank , Branch is values. 等级分支是值。 Your array is bad format. 您的数组格式错误。

$arr = json_decode($row[0],TRUE);

foreach($row['chart_data'] as $chart_data)
{
    foreach($chart_data[0] as $k)
    {
        echo $k[0];
        echo $k[1];
    }
}

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

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