首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何回显多维数组的两个部分?

如何回显多维数组的两个部分?
EN

Stack Overflow用户
提问于 2019-05-15 03:11:44
回答 2查看 27关注 0票数 0

我遇到的问题是,当我遍历多维数组时,一旦我了解到多维数组中的技能,它就会输出:Andrew Wiley 30 Game Designer 72000 Array C++ Level Design Leadership

它同时打印出数组和C++级别的设计领导力。

如何删除数组的输出,并将其替换为技能C++ Level Design Leadership,而不同时打印它们?

代码语言:javascript
复制
$students = [
    Andrew => [
        fullName => Andrew Wiley,
        age => 30,
        jobTitle => Game Designer,
        Salary => 72000,
        skills => [C++, Level Design, Leadership]
    ]
];

foreach($students[Andrew] as $student) {
    echo $student . <br>;
    if($student == $students[Andrew][skills]) {
        foreach($students[Andrew][skills] as $skill) {
            echo $skill;
        }
    }
};
EN

回答 2

Stack Overflow用户

发布于 2019-05-15 05:32:00

您可以使用递归函数。

代码语言:javascript
复制
function printVariables($array,$level=1){
    foreach($array as $value){
        if(is_array($value)){
            $level++;
            printVariables($value,$level);
        }else{
            echo $level <= 2 ? "$value\n" : "$value ";
        }
    }
}

printVariables($students);

或者序列化它。

代码语言:javascript
复制
foreach($students as $student){
     echo json_encode($student,JSON_PRETTY_PRINT);
}
票数 0
EN

Stack Overflow用户

发布于 2019-05-15 05:52:11

像这样更新foreach:

代码语言:javascript
复制
foreach($students['Andrew'] as $student) {
    echo $student . <br>;
      if($student === $students['Andrew']['skills'] 
        && is_array($students['Andrew']['skills'])
        && count($students['Andrew']['skills']) > 0) {
           echo implode(", ",$students['Andrew']['skills']);
        }
 }

输出:

C++,层次设计,领导力

它的作用是:

  • If语句检查它是否相等,然后
  • 检查它是否是一个数组

代码,然后检查数组是否为空

还要注意数组键两边的引号

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56137082

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档