【发布时间】:2021-02-07 01:10:11
【问题描述】:
所以,我试图了解如何做到这一点。我很难过。
$arrayChart = array(
array(
"Name" => "Mike",
"ID" => "0001234",
"Hours" => 38
),
array(
"Name" => "Miles",
"ID" => "0005678",
"Hours" => 42
)
);
我希望能够从键值中找到小时数(整数)。问题是我想根据名字的第一个字母找到它。这意味着如果我有“M”,那么每个以“M”开头的名字我都应该输出他们一周的工作时间并将它们加在一起。
所以,我得到了“M”,我必须从中找到他们的工作时间并添加它们。我怎样才能做到这一点? 我尝试使用此功能,但它甚至没有做任何事情。
$name = "M";
foreach($arrayChart as $key){
if($key["Name"] == $name){
$hours = $key["Hours"];
break;
}
}
print_r($hours);
【问题讨论】:
-
您需要与名称的第一个字母进行比较。您还需要添加到
$hours(+=),而不是分配(=),并且在找到匹配项时不应该break。试试3v4l.org/NEXYI -
我了解您给我的其他提示和解决方案。我唯一不明白的是如何比较第一个字母。我希望能够从给定的字母中找到值。我还在学习 PHP,但我认为我还做不到。
-
$string[0]给你$string的第一个字母,所以我链接到的代码使用$key["Name"][0]访问$key["Name"]的第一个字母 -
但如果我使用 [0],那将是硬编码的。我正在尝试以一种无需硬编码就能做到的方式学习。
-
只需将您的
if语句更改为if(preg_match("/^{$name}/i", $key["Name"]))就可以了!