我希望将$this
循环中的foreach
值与if/else
语句中的字符串相匹配,但我似乎无法获得任何输出?在Javascript中,这种逻辑应该可以工作,但在PHP中却没有。每次迭代都应检查当前值是否为$startLetter
作为第一个字母,如果是,则应该回显该值。如果它不以$startLetter
开头,则不应该回显该值。
<?php
$clubFeed = simplexml_load_file('feed.xml');
$startLetter = parse_url($_SERVER['REQUEST_URI'], PHP_URL_QUERY);
foreach ($clubFeed->club as $clubAtts) {
$clubNaam = $clubAtts->naam;
if(strpos($clubNaam, $startLetter) === 0){
echo $clubNaam;
}
}
?>
答案 0 :(得分:1)
不幸的是我不理解你的JS语法。我将向您展示一个一般的例子:
foreach($clubFeed as $club) {
if($club->naam[0] == $startLetter[0]) {
echo $club->naam;
}
}
字符串中的单个字符可以通过字符串中的位置访问。
答案 1 :(得分:0)
parse_url
需要一个完整的网址,而不仅仅是REQUEST_URI
$url = sprintf("http://%s%s", $_SERVER['HTTP_HOST'], $_SERVER['REQUEST_URI']);
$parsed = parse_url($url, PHP_URL_QUERY);
这将是正确的语法,但由于您使用的是当前网址,因此您可以使用:
$start_letter = $_SERVER['QUERY_STRING'][0];