我遇到的问题是,当我遍历多维数组时,一旦我了解到多维数组中的技能,它就会输出:Andrew Wiley 30 Game Designer 72000 Array C++ Level Design Leadership
它同时打印出数组和C++级别的设计领导力。
如何删除数组的输出,并将其替换为技能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;
}
}
};发布于 2019-05-15 05:32:00
您可以使用递归函数。
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);
}发布于 2019-05-15 05:52:11
像这样更新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++,层次设计,领导力
它的作用是:
代码,然后检查数组是否为空
还要注意数组键两边的引号
https://stackoverflow.com/questions/56137082
复制相似问题