array_values()没有显示正确的值

时间:2018-10-15 16:21:44

标签: php arrays foreach

这是我的数组:

array (size=12)
  0 => 
    array (size=2)
      'mon' => string '2018-01-01 00:00:00' (length=19)
      'nb_argus' => string '29' (length=2)
  1 => 
    array (size=2)
      'mon' => string '2018-02-01 00:00:00' (length=19)
      'nb_argus' => string '21' (length=2)
  2 => 
    array (size=2)
      'mon' => string '2018-03-01 00:00:00' (length=19)
      'nb_argus' => string '34' (length=2)
  3 => 
    array (size=2)
      'mon' => string '2018-04-01 00:00:00' (length=19)
      'nb_argus' => string '18' (length=2)
  4 => 
    array (size=2)
      'mon' => string '2018-05-01 00:00:00' (length=19)
      'nb_argus' => string '25' (length=2)
  5 => 
    array (size=2)
      'mon' => string '2018-06-01 00:00:00' (length=19)
      'nb_argus' => string '17' (length=2)
  6 => 
    array (size=2)
      'mon' => string '2018-07-01 00:00:00' (length=19)
      'nb_argus' => string '23' (length=2)
  7 => 
    array (size=2)
      'mon' => string '2018-08-01 00:00:00' (length=19)
      'nb_argus' => string '8' (length=1)
  8 => 
    array (size=2)
      'mon' => string '2018-09-01 00:00:00' (length=19)
      'nb_argus' => string '14' (length=2)
  9 => 
    array (size=2)
      'mon' => string '2018-10-01 00:00:00' (length=19)
      'nb_argus' => string '0' (length=1)
  10 => 
    array (size=2)
      'mon' => string '2018-11-01 00:00:00' (length=19)
      'nb_argus' => string '0' (length=1)
  11 => 
    array (size=2)
      'mon' => string '2018-12-01 00:00:00' (length=19)
      'nb_argus' => string '0' (length=1)

我只是试图在foreach循环中显示每个'nb_argus'值,但是不能使用STRING指向,我需要使用索引,这是我的代码:

foreach ($array_12_months  as $key => $tab) {

        foreach($tab as $row2 => $tab2){

            $tab2 = array_values($tab2);
            echo $tab2[1] . " my complete nb_argus value <br/>";
        }
    }

它不起作用,例如,它不显示29,而是显示2!

代替显示21,它仅显示一个字符:2

我真的找不到任何解决方案,尝试了很多事情,我无法访问我的nb_argus值,而我在使用array_values()时,它不起作用,请帮忙

是因为nb_argus是一个不起作用的字符串吗?我找不到任何解决方案。

2 个答案:

答案 0 :(得分:2)

使用array_column并将仅'nb_argus'提取到平面数组中并回显它们。

$nb_argus = array_column($arr, 'nb_argus');
foreach($nb_argus as $nb){
    echo $nb . " ";
}

或者您可以内爆数组并像这样回显它们:

$nb_argus = array_column($arr, 'nb_argus');
echo implode(" ", $nb_argus);

答案 1 :(得分:-1)

如果您确实需要按数字访问索引,而不是使用nb_argus键,则可以使用:

foreach($array as $item) {
    $values = array_values($item);
    echo $values[1] . " my complete nb_argus value <br/>";
}