为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

PHP
忽然笑 2021-06-12 17:19:11
我遇到的问题是当我遍历多维数组时,一旦我掌握了多维数组的技能,它就会打印出: Andrew Wiley30Game Designer72000ArrayC++ Level Design Leadership它打印出 Array 和 C++ Level Design Leadership。如何删除 Array 的输出并将其替换为技能 C++ Level Design Leadership 而不打印两者?$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;        }    }};
查看完整描述

2 回答

?
江户川乱折腾

TA贡献1851条经验 获得超5个赞

您可以使用递归函数。


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);

或者序列化...


foreach($students as $student){

     echo json_encode($student,JSON_PRETTY_PRINT);

}


查看完整回答
反对 回复 2021-06-19
?
慕桂英546537

TA贡献1848条经验 获得超10个赞

像这样更新你的 foreach:


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++、关卡设计、领导力

这是做什么的:

  • 如果语句检查它是否相等,

  • 然后检查它是否是一个数组

  • 然后检查数组不为空

  • 在最终将所有数组元素连接成一个字符串并用echo.

还要注意数组键周围的引号


查看完整回答
反对 回复 2021-06-19
  • 2 回答
  • 0 关注
  • 173 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信