【问题标题】:Printing nested array values打印嵌套数组值
【发布时间】:2020-08-25 17:29:19
【问题描述】:

我们正在进行以下编程练习:Average Array

我们首先尝试将嵌套数组值输出到控制台,如下所示:

function avgArray($arr) {

  print_r($arr);
  print_r($arr[0]);
  echo $arr[0][0];
  var_dump($arr[0]);
  foreach($arr as $var){
    echo "\n",$var;
  }
  foreach($arr as $outers){
    foreach($outers as $inners){
      echo $inners;
    }
  }
  foreach($arr as $key => $value){
    echo $value;
  }
  for($i=0;$i<sizeof($arr,0);$i++){
    for($j=0;$j<sizeof($arr,1);$j++){
      echo $arr[$i][$j];
    }
  }


  return $arr;
}

但是控制台中没有显示任何内容。

测试如下:

class SolutionTest extends TestCase {
  public function testFixedTests() {
    $this->assertEquals([3, 4, 5, 6], avgArray([[1, 2, 3, 4], [5, 6, 7, 8]]));
    $this->assertEquals([22.5, 11, 38.75, 38.25, 19.5], avgArray([[2, 3, 9, 10, 7], [12, 6, 89, 45, 3], [9, 12, 56, 10, 34], [67, 23, 1, 88, 34]]));
    $this->assertEquals([0, 0, 1, 5, -4.5], avgArray([[2, 5, -4, 3, -19], [-2, -5, 6, 7, 10]]));
    $this->assertEquals([-1, -31.5, -32.5, -22], avgArray([[-2, -18, -45, -10], [0, -45, -20, -34]]));
    $this->assertEquals([1.6, 6.5105, 2.075, 2.0635, 1.45], avgArray([[1.2, 8.521, 0.4, 3.14, 1.9], [2, 4.5, 3.75, 0.987, 1.0]]));
  }
}

所以,当我们执行测试时,我们会看到以下输出:

我们想要每个嵌套数组中的内容。

然后,我们尝试如下解题:

function avgArray($arr) {


  for($i=0;$i<count($arr[0]);$i++){
    for($j=0;$j<count($arr);$j++){
      $result[$i][$j]=$arr[$j][$i];
      echo $result[$i][$j];
    }
    $result[$i]=array_sum($result[$i])/count($arr);
  }

  return $result;

}

但是我们没有看到打印到控制台的回声。

我们想知道如何打印 $arr 以进行调试?

我们已阅读:

【问题讨论】:

    标签: php arrays multidimensional-array


    【解决方案1】:

    尝试以递归方式遍历数组。

    function searchFun($sourceArray)
    {
        if(is_array($sourceArray) && count($sourceArray)>0)
        {
            foreach($sourceArray as $key=>$value) {
                 if(is_array($value) && count($value) > 0) { 
                    $res_path = searchFun($value ); 
                }
                else { 
                    echo $key .' : '. $value;
                }           
            }
    
        }
    }
    
    $x = []; //set your nested array here;
    
    searchFun($x);
    

    【讨论】:

      猜你喜欢
      • 2018-07-04
      • 1970-01-01
      • 2019-05-28
      • 1970-01-01
      • 1970-01-01
      • 2019-10-05
      • 2017-09-18
      • 2021-05-06
      • 1970-01-01
      相关资源
      最近更新 更多