- print_r: documentation ( source)
<?php
$str ="<optgroup label='Billing Summary Reports' style='color:blue;font-weight:bold;'>
<option style='color:black; font-weight:normal' value='JobTracking'>Job Tracking</option>
<option style='color:black; font-weight:normal' value='CustomerRouting' selected>Customer Routing Report</option>
<option style='color:black; font-weight:normal' value='BillingStatistics'>Billing Statistics</option>
<option style='color:black; font-weight:normal' value='BranchReport'>Branch Report</option>
<option style='color:black; font-weight:normal' value='BranchBilling'>Branch Billing Report</option>
<option style='color:black; font-weight:normal' value='BillingActivityDetail'>Billing Activity Details</option>
</optgroup>
<optgroup label='e-Adoption Reports' style='color:blue;font-weight:bold;'>
<option style='color:black; font-weight:normal' value='eAdoptionDashboard'>e-Adoption Dashboard</option>
<option style='color:black; font-weight:normal' value='eAdoptionReport'>e-Adoption Chart</option>
<option style='color:black; font-weight:normal' value='TopBillingCusts'>Top Paper Customers</option>
<option style='color:black; font-weight:normal' value='TopBillingCustsAcctNum'>Top Paper Custs by Acct Num</option>
<option style='color:black; font-weight:normal' value='BranchEBillReport'>Branch Electronic Report</option>
<option style='color:black; font-weight:normal' value='EasyImportUsage'>EasyImport Usage</option>
</optgroup>
<optgroup label='eBilling and ePayment' style='color:blue;font-weight:bold;'>
<option style='color:black; font-weight:normal' value='OnlinePayments'>Online Payments</option>
<option style='color:black; font-weight:normal' value='PaymentFile'>Payment File Report</option>
<option style='color:black; font-weight:normal' value='ACHTransfers'>ACH Transfers</option>
<option style='color:black; font-weight:normal' value='IGUsage'>Invoice Gateway Usage Report</option>
<option style='color:black; font-weight:normal' value='ObpAccountAudit'>Online Account Audit Report</option>
<option style='color:black; font-weight:normal' value='EUsageReport'>Invoice Central Usage Report</option>
<option style='color:black; font-weight:normal' value='IGUsers'>Online User Report</option>
<option style='color:black; font-weight:normal' value='eDSOReport'>eDSO By Month</option>
<option style='color:black; font-weight:normal' value='AutoPay'>Auto Pay Report</option>
</optgroup>
<optgroup label='Bullpen Reports' style='color:blue;font-weight:bold;'>
<option style='color:black; font-weight:normal' value='BPInvoices'>Bullpenned Invoices</option>
<option style='color:black; font-weight:normal' value='BPStatistics'>Bullpen Statistics</option>
</optgroup>
<optgroup label='Address Reports' style='color:blue;font-weight:bold;'>
<option style='color:black; font-weight:normal' value='UncertifiedAddresses'>Uncertified Addresses</option>
<option style='color:black; font-weight:normal' value='NCOAAddressesReport'>NCOA Addresses</option>
</optgroup>
<optgroup label='Miscellaneous' style='color:blue;font-weight:bold;'>
<option style='color:black; font-weight:normal' value='InvoiceExtract'>Invoice Extract</option>
<option style='color:black; font-weight:normal' value='FaxFailures'>Fax Failures</option>
<option style='color:black; font-weight:normal' value='EmailFailures'>Transmittal Failures</option>";
$rptList = array();
$doc = new DOMDocument();
$doc->loadHTML($str);
$headings = $doc->getElementsByTagName('optgroup');
$books = $doc->getElementsByTagName('option');
foreach($headings as $heading) {
$parentItem = $heading->getAttribute('label');
if($heading->hasChildNodes()) {
$childItems = $heading->getElementsByTagName('option');
foreach ($childItems as $childItem) {
$rptList[$parentItem][] = $childItem->nodeValue;
}
}
}
print_r($doc->getTextFromNode($headings));