[英]Printing nested array values
我們正在做以下編程練習: Average Array 。
我們首先嘗試將 output 的嵌套數組值發送到控制台如下:
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]]));
}
}
因此,當我們執行測試時,我們會看到以下 output:
我們想要每個嵌套數組中的內容。
然后,我們嘗試如下解決練習:
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 以進行調試?
我們已閱讀:
嘗試以遞歸方式遍歷數組。
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);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.