我有一个包含关联数组的多维数组,在关联数组中我有一个名为'opt'的键,其中包含一个数组。我循环遍历整个多维数组。我想让它更简化,摆脱 检查密钥是否“选择”,因为如果我有更多包含数组的密钥,那么我必须应用检查所有包含array的键。我不想这样做,并希望以更加技术的方式做。 简而言之,如何在循环遍历$ value包含数组的数组时进行检查。
$myArr=array(
array(
'question' => 'First Question',
'opt' => array('A','B','c','D'),
'ans' => '3'
),
array(
'question' => 'Second Question',
'opt' => array('A','B','c','D'),
'ans' => '1'
)
);
for($i=0; $i<count($myArr); $i++)
{
foreach ($myArr[$i] as $key => $value) {
if ($key!='opt') {
echo $value . "<br/>";
}
else{
for($ii=0; $ii<count($value); $ii++)
{
echo $value[$ii] . "<br />";
}
}
}
}
答案 0 :(得分:0)
您可以使用递归函数并使用GameObject pyramidFace1;
...
pyramidFace1.GetComponent<MeshRenderer>().material = materials[buttonIndex];
...
显示任何内容,如下所示:
foreach
这样称呼:
function display_array($arr){
if(gettype($arr) == 'array'){
foreach($arr as $v){
display_array($v);
}
}else{
echo $arr . '<br>';
}
}
输出与您的代码相同。请查看here。
答案 1 :(得分:0)
取决于您所需的输出...&#34;打印的最简单方法&#34;这个数组以一种很好的格式化方式是:
echo "<pre>";
print_r($arr);
echo "</pre>";
这可能无法为用户提供演示文稿,但如果只是为了观看&#34;结果你自己,它完全没问题。
答案 2 :(得分:0)
使用以下类可以轻松打印嵌套数组。它以递归方式运行,因此无论有多少嵌套数组,有多少层都无所谓。
<?php
class Debug
{
public static function errorLog($text)
{
$lines = Debug::arrayToTextLines($text);
foreach ($lines as $value) {
error_log($value);
}
}
public static function echo($text)
{
$lines = Debug::arrayToTextLines($text);
foreach ($lines as $value) {
echo $value;
}
}
public static function arrayToTextLines($array, $nestLevel = 0)
{
$resultLines = array();
$margin = "";
for ($i = 0; $i < $nestLevel; $i++) {
$margin = " " . $margin;
}
if (gettype($array) == 'array') {
foreach ($array as $key => $value) {
$subValues = Debug::arrayToTextLines($value, $nestLevel + 1);
if (count($subValues) > 1) {
$resultLines[] = $margin . $key . " => ";
$resultLines = array_merge($resultLines, $subValues);
} else {
$resultLines[] = $margin . $key . " => " . $value;
}
}
} else {
$resultLines[] = $margin . $array;
}
return $resultLines;
}
}