<?php
$arr = [];

$obj1 = new stdClass();
$obj1->item1 = 'sí';
$obj1->item2 = 'no';
$obj1->item3 = [];

$obj2 = new stdClass();
$obj2->color = 'azul';
$obj2->tipo = 'círculo';

$obj3 = new stdClass();
$obj3->color = 'rojo';
$obj3->tipo = 'triángulo';

$obj4 = new stdClass();
$obj4->color = 'verde';
$obj4->tipo = 'cuadrado';

array_push($obj1->item3, $obj2, $obj3, $obj4);
$arr[] = $obj1;

printArrObj($arr);
 
function printArrObj($param){
    if (is_array($param) || is_object($param)){
        foreach ($param as $key => $value){
            if (is_array($value) || is_object($value)){
                echo $key . ": \n";
                printArrObj($value);
            }
            else{
                echo $key . ': ' . $value . "\n";
            }
        }
    }
    else{
        echo 'No se ha proporcionado ningún arreglo u objeto';
    }
}
?>