2014-02-11 2 views
0

Может кто-нибудь помочь вывести многомерный массив, пожалуйста.Вывести многомерный массив в список

Не уверен, где я поступил не так. Порядок сортировки выглядит правильно, но не отображает результаты.

<?php 
$atest = Array ("0" => Array ("id" => "913", "testname" => "qwerty1", "i" => "1"), 
       "1" => Array ("id" => "913", "testname" => "test22", "i" => "2"), 
       "2" => Array ("id" => "913", "testname" => "American1", "i" => "3"), 
       "3" => Array ("id" => "913", "testname" => "Eagle4", "i" => "4")); 

$range = range('A','Z'); 
$output = array(); 
$output['#'] = array(); 

foreach($range as $letter){ 
    $output[$letter] = array(); 
} 

foreach($atest as $test){ 
    if ($test["testname"] !='') { 

     $uc = ucfirst($test["testname"]); 
     if(array_search($uc[0], $range) === FALSE){ 
      $output['#'][] = $uc; 
     } else { 
      $output[$uc[0]][] = $uc; 
     } 

    } 
} 

foreach($output AS $letter => $result){ 
    echo $letter . "<br/>--------<br/>\n"; 
    sort($result); 
    foreach($result AS $indresult){ 
     echo '<a href="index.php?option=com_comprofiler&task=page&user=' . (int) $indresult['id'] . '&b=' . $indresult['i'] . '">' . $indresult['testname'] . '</a><br/>'; 
    } 
    echo "<br/>\n"; 
} 
?> 
+0

'Warning: Illegal строка смещения 'идентификатор' на линии 32' и т.д. и т.п.: http://codepad.viper-7.com/w4Mpza – jeroen

ответ

0

Вы не прикладывая весь вспомогательный массив в $output, вы только положить $uc. Изменение среднего foreach петли на:

foreach($atest as $test){ 
    if ($test["testname"] !='') { 

     $uc = ucfirst($test["testname"]); 
     if(array_search($uc[0], $range) === FALSE){ 
      $output['#'][] = $test; 
     } else { 
      $output[$uc[0]][] = $test; 
     } 

    } 
} 
0

Попробуйте использовать print_r функцию, например, для сброса массива:

print_r($atest); 
0

Попробуйте

$output[$uc[0]][] = $test; 

вместо

$output[$uc[0]][] = $uc; // только имя сохранено.

См демонстрационная here

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