【发布时间】:2016-06-02 20:18:56
【问题描述】:
我花了大约两个小时试图弄清楚这一点,所以最后我要把它贴在这里。
我有一个 JSON 提要中的作业列表,我正在将其提取到 PHP 中。我想获得特定位置的所有工作。位置逻辑工作正常,我得到了所有合适的工作。
我的问题是让else 语句起作用。如果我使用下面的代码,它将为每个作业实例返回 'No jobs available'。我可以使用i++ 只返回一次,但无论如何它都会返回 - 无论我的工作是否匹配。
// This code does not work properly
foreach ( $json['jobs'] as $job ) {
$location = $job['job']['location'];
if ( $location === $current_location ) {
echo 'Job title';
} else {
echo 'No jobs available';
}
}
这将返回如下内容:
Job title
Job title
No jobs available
Job title
所以基本上我需要以某种方式将 else 语句从 foreach 循环中取出,并且只显示一次。
我正在寻找,用英语:对于每项工作,列出当前位置的工作。如果当前位置没有可用的工作,请打印一条声明“您的位置没有可用的工作”。
对于这样一个与逻辑相关的新手问题,我深表歉意。经过一番搜索,找不到正确的答案。
【问题讨论】:
-
如果作业不可用,则将
flag设置为true,如果标志为真,则输出没有作业可用。 -
可能更容易将阵列重建为位置 => 作业类型的设置。然后使用 $current_location,您可以对新数组进行索引检查,如果存在,则拉取在其下找到的所有子元素/作业。
-
您在问题中显示的代码是否只是用于打印某个位置的作业的代码?
-
是的,我只想打印一个位置的作业。作业打印正常,我唯一的问题是在该特定位置没有可用作业时打印“没有可用作业”。按照我的逻辑,它要么总是对的,要么总是错的。
-
那么,每个
$job是否包含多个作业?