繁体   English   中英

Foreach循环+关联数组

[英]Foreach loop + associative array

如果我有以下代码:

$employeeAges;
$employeeAges["Lisa"] = "28";
$employeeAges["Jack"] = "16";
$employeeAges["Ryan"] = "35";
$employeeAges["Rachel"] = "46";
$employeeAges["Grace"] = "34";

foreach( $employeeAges as $name => $age){
    echo "Name: $name, Age: $age <br />";
}

如何输出特定信息? 下面是一个错误编写的示例:

foreach( $employeeAges as $name => $age ) {
     $selective = $name["Lisa"]->$age;
     $secondary = $name["Grace"]->$age;
     echo "The person you're looking for is $selective years old. And the other one is $secondary years old.";
}

如您所见,我只想获取特定项$ key的$ value。 上面的代码输出以下错误:

Trying to get property of non-object 

有人可以帮忙这段代码吗? 不胜感激。

如果我了解您没错,而您只是想知道某个人的年龄,请执行以下操作:

$selective = $employeeAges["Lisa"];
$secondary = $employeeAges["Grace"];
echo "The person you're looking for is $selective years old. And the other one is $secondary years old.";

->运算符用于访问对象的命名成员。 参见: http : //www.php.net/manual/en/language.oop5.basic.php

如注释中所述,要遍历数组以查找特定键,请执行以下操作:

foreach ($employeeAges as $name => $age) {
    if ($name == "Grace") {
        echo $name . " is " . $age . " years old";
        break;
    }
}

我对问题的理解不同

<?php
//Assuming this is your array

$employeeAges["Lisa"] = "28";
$employeeAges["Jack"] = "16";
$employeeAges["Ryan"] = "35";
$employeeAges["Rachel"] = "46";
$employeeAges["Grace"] = "34";

echo $employeeAges["Lisa"]; //Will output 28
echo $employeeAges["Jack"]; //Will output 16
echo $employeeAges["Grace"]; //Will output 34

您只需要指定所需的键,它将输出值。

因此,您只想打印出年龄吗?

$employeeAges;
$employeeAges["Lisa"] = "28";
$employeeAges["Jack"] = "16";
$employeeAges["Ryan"] = "35";
$employeeAges["Rachel"] = "46";

$ employeeAges [“ Grace”] =“ 34”;

foreach($employeeAges as $name=>$age) {
  echo $age;
}

使用这样的foreach循环,只需将键强制为$name ,将值强制为$age而不必调用对象,因此会出现错误。

我认为@jli有一个更好的答案适合您的问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM