2014-11-02 4 views
0

У меня есть этот код для массива, и проблема в том, что он отображает только два последних элемента массива.PHP Array не показывает все элементы

$svi= array(
     $WMN1, 
     $LNG1, 
     $SSWN1, 
     $DT1, 
     $OET1, 
     $OW1, 
     $NT1 
    ); 

    $imena_sajtova = array(
     'Prvi WMN', 
     'Drugi LNG', 
     'Treci SSWN', 
     'Cetvrti DT', 
     'Peti OET', 
     'Sesti OW', 
     'Sedmi NT' 
    ); 

    $novi_svi =array_combine($svi, $imena_sajtova); 

    echo '<pre>'; print_r($novi_svi); echo '</pre>'; 

И результат этого кода:

Array 
(
    [2] => Sedmi NT 
    [1] => Sesti OW 
) 

Что может быть проблема? Благодаря!

var_dump ($ SVI) показывает следующее:

array(7) { [0]=> int(2) [1]=> int(1) [2]=> int(1) [3]=> int(1) [4]=> int(2) [5]=> int(1) [6]=> int(2) } 

Это $ массив SVI имеет результаты некоторых функций:

$WMN1=RSS_Brojac($WMN); 
$LNG1=RSS_Brojac($LNG); 
$SSWN1=RSS_Brojac($SSWN); 
$DT1=RSS_Brojac($DT); 
$OET1=RSS_Brojac($OET); 
$OW1=RSS_Brojac($OW); 
$NT1=RSS_Brojac($NT); 

Я изменил порядок массивов в array_combine, и это работает!

$novi_svi =array_combine($imena_sajtova, $svi); 

    arsort($novi_svi); 


    echo '<pre>'; print_r($novi_svi); echo '</pre>'; 

И выход этого кода:

Array 
(
    [Prvi WMN] => 2 
    [Sedmi NT] => 2 
    [Peti OET] => 2 
    [Sesti OW] => 1 
    [Cetvrti DT] => 1 
    [Drugi LNG] => 1 
    [Treci SSWN] => 1 
) 

I'have отсортирован их от высокой к низкой, это то, что я на самом деле хотел сделать с этим массивом. Теперь, как отделить результаты, чтобы они были в отдельных divs внутри html? Итак, я смогу изменить свой стиль и создать таблицу с этими результатами.

Результаты выводятся из некоторых RSS-каналов, которые я использую для подсчета количества опубликованных новостей.

Благодарим вас за внимание!

+3

'var_dump ($ SVI),' --- мы понятия не имеем, что внутри этого массива. Но похоже, что это не уникальные номера. – zerkms

+0

Внутри этого массива есть некоторые функции: \t $ WMN1 = RSS_Brojac ($ WMN); \t \t $ LNG1 = RSS_Brojac ($ LNG); \t \t $ SSWN1 = RSS_Brojac ($ SSWN); \t \t $ DT1 = RSS_Brojac ($ DT); \t \t $ OET1 = RSS_Brojac ($ OET); \t \t $ OW1 = RSS_Brojac ($ OW); \t \t $ NT1 = RSS_Brojac ($ NT); – Adnan

+0

@Adnan Отредактируйте вопрос, а не напишите его как комментарий.Это нечитаемо :-( –

ответ

0

Ну, вот почему вы только получаете два значения после объединения массива, потому что вы указали только два уникальных целых числа: 1,2 как индексы массивов, которые нужно объединить. Вам нужно как минимум 7 уникальных значений для ваших 7 строк.

Here's an example using your code and it doesn't work

И ... Here's an example using 7 unique indexes, that does work

+0

Да, ты совершенно прав. Это была проблема! Спасибо @Ohgodwhy. Я почти закончил работу с приложением, но мне нужна дополнительная помощь с этим кодом. Я опубликовал обновление. :) – Adnan

+1

@Adnan Пожалуйста, создайте новый вопрос и отмените редактирование. Это не сайт в стиле форума с длинными потоками, вот что делает его уникальным. :) – Ohgodwhy

+0

Спасибо, я сделаю это прямо сейчас. :) – Adnan

0

Typecast значения в первом массиве перед слиянием. Может быть достигнуто с помощью array_map(). Я предполагаю, что вы знаете нужные типы в переменных.