2013-05-30 7 views
0

У меня есть список писем. Я сравниваю этот список букв с массивом алфавита и получаю разницу. Затем они объединяются в один массив, поэтому я могу выводить его как один список.Слияние двух массивов, стиль каждого по-другому

//start the array 
$alphabet = array(); 

//the letters I'm using 
$letters = array('A','B','C','D','E','F','G','H','I','J','L','M','N','O','P','R','S','T','V'); 
//place into true array 
foreach($letters as $l) 
    $alphabet['true'][] = $l; 

//alphabet array, place into false array 
foreach (range('A','Z') as $char) 
    $alphabet['false'][] = $char; 

//the not used array by getting the difference of true and false arrays 
$alphabet['actual'] = array_diff($alphabet['false'], $alphabet['true']); 

//merge the arrays into one array 
$new = array_merge($alphabet['true'],$alphabet['actual']); 

//sort them naturally 
natsort($new); 

//list the results 
echo "All together now: <pre>"; print_r($new); echo "</pre>"; 

Есть ли способ подгонять каждую из различных значений ключей массива, прежде чем размещать их в большом массиве? Что-то по строкам не используемых букв - это другой цвет? Или я об этом ошибаюсь? Спасибо за понимание.

ответ

2

Если это место, я бы сделал что-то подобное.

//start the array 
$alphabet = array(); 

//the letters I'm using 
$used = array('A','B','C','D','E','F','G','H','I','J','L','M','N','O','P','R','S','T','V'); 
$alphabet = range('A','Z'); 
echo "<ul>"; 
foreach($alphabet as $letter){ 
    if (in_array($letter, $used)){ 
     echo "<li class='used'>".$letter."</li>"; 
    } else { 
     echo "<li class='unused'>".$letter."</li>"; 
    } 
} 
echo "</ul>"; 

и сделать несколько правил CSS

li.used { color:green; } 
li.unused { color:red; } 
+0

Это wayyy более проще. Ничего себе, я делал это неправильно. Спасибо за предложение. – stepquick

Смежные вопросы