foreach ステートメントで会社のリストを出力する作業を行っています。各企業の最初の文字を比較するために、それぞれの最初の文字を代入しています。これらは、if コンパレーター操作を介して送信され、初期文字の各範囲の最初の出現であるかどうかを確認する必要があります。var_dump は、srt_cmp が意図した値を見つけたことを示しています。多くの組み合わせの if 比較で値を使用すると、if ステートメントが実行されません。
<?php
$stringCompanyListing = '<!-- beginning of business listing -->'."\n";
$countCompanies=0;
$haveStrungAD = "";
$haveStrungEI = "";
$haveStrungJO = "";
$haveStrungPU = "";
$haveStrungVZ = "";
foreach ($files as $file){
$company = new SimpleXMLElement($file, 0, true);
$COMPANYKEY[$countCompanies] = basename($file, '.xml');
if ($countCompanies >= 1){
$currentCompany = substr($COMPANYKEY[$countCompanies],0, 1);
$previousCompany = substr(($COMPANYKEY[($countCompanies-1)]),0, 1);
$checkForNavigation = strcmp($previousCompany, $currentCompany);
// var_dump at this point show intended values such as "A" and "-1"
if ($haveStrungAD == ""){
if ($currentCompany == range("A", "D")){
if ($checkForNavigation <= -1){
$stringCompanyListing .= ' <div class="categoryHeading"><a name="atod"></a>A-D</div>';
$haveStrungAD = "done";
}
}
}
if ($haveStrungEI == ""){
if ($currentCompany == range("E", "I")){
if ($checkForNavigation <= -1){
$stringCompanyListing .= ' <div class="categoryHeading"><a name="etoi"></a>E-I</div>';
$haveStrungEI = "done";
}
}
}
// more if comparisons omitted
}
$countCompanies++;
}