2012-06-28 3 views
0

Извините, ребята, не ленившись, я знаю, что у других было такое же сообщение об ошибке, но я все еще не мог понять это, поэтому я должен был спросить.Ошибка php array - скалярное значение

У меня есть 2 массива 2d, каждый со строкой и соответствующим int.

Я пытаюсь сравнить строки в первом массиве со строками во втором, и если они одинаковы, я хочу добавить соответствующие целые числа.

Я получаю сообщение об ошибке - «Не удается использовать скалярное значение как массив» на 7-й линии

for($countOne=0; $countOne<10; $countOne++) 
    { 
    for($countTwo=0; $countTwo<10; $countTwo++) 
    { 
     if($blekko_Array['url'][$countOne]==$bing_Array['url'][$countTwo]) 
     { 
     $blekko_Array['score']['$countOne'] = $blekko_Array['score']['$countOne'] + $bing_Array['score']['$countTwo']; 
     } 
    } 
    } 

Кто-нибудь знает, в чем проблема?

Благодаря

ответ

0

Это должно сделать это:

foreach ($blekko_Array as &$blekko) { 
    foreach ($bing_Array as $bing) { 
     if($blekko['url']==$bing['url']) { 
      $blekko['score'] += $bing['score']; 
     } 
    } 
} 

С одной стороны, ваш код зашито смотреть через 10 пунктов, поэтому если массив имеет менее 10 записей, вы получите ошибку на пропавших.

+0

Еще раз спасибо andrew. Он исправил ошибку, но на ее месте появился новый, указывающий на последнюю строку кода. Невозможно использовать операторы assign-op с перегруженными объектами или смещения строк – shanahobo86

+0

Я запускаю код без проблем; поэтому может возникнуть проблема с данными, которые у вас есть - я думаю, что это может произойти, если одна из записей уже не имеет «оценки». – andrewsi

+0

Попробуйте отключить эту строку: '$ blekko ['score'] = $ blekko ['score'] + $ bing ['score'];' – andrewsi

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