2013-07-29 2 views
0

У меня возникла помощь в создании объединенного массива, который принимает элементы из связанных массивов, массивы имеют URL-адреса и оценки, которые берутся из поисковых систем, когда URL-адреса совпадают с оценкой, объединенный массив, вот кодДобавление дополнительных элементов в объединенный массив

$combined = array(); 

foreach($bingArray as $key=>$value){ // for each bing item 
if(isset($combined[$key])) 
    $combined[$key] += $value['score']; // add the score if already exists in $combined 
else 
    $combined[$key] = $value['score']; // set initial score if new 
} 

тот же код, затем побежал за $ googleArray, это прекрасно работает, но теперь я хочу, чтобы добавить значения, которые были закомментированные в коде ниже

foreach($jsonObj->d->results as $value) 
    { $i = 0; 
     $bingArray[str_replace ($find, '', ($value->{'Url'}))] = array(   
     //'title'=> $value->{'Title'}, 
     //'snippet' => $value->{'Description'}, 
     'score' => $score-- 
    ); 

Я уверен, что его просто изменить первый foreach цикл, чтобы сделать это, но я не уверен, как это сделать, может ли любая помощь, пожалуйста,

+0

Не могли бы вы дать пример результатов? –

ответ

0

Ответ заключается в определении каждого из ваших элементов массива как ассоциативного массива, содержащего элемент оценки, заголовка и фрагмента.

$combined = array(); 

foreach($bingArray as $key=>$value){ // for each bing item 
if(isset($combined[$key])) 
    $combined[$key]["score"] += $value['score']; // add the score if already exists in $combined 
else 
    $combined[$key] = array("score"=>$value['score'],"title"=>$value["title"], "snippet"=>$value["snippet"]); // set initial score if new 
} 

Чтобы получить доступ к счету вы просто

echo $combined[$key]["score"]; 
+0

Я, кажется, получаю синтаксическую ошибку в последней строке кода – user2622398

+0

, он забыл добавить ')' перед точкой с запятой. – Eray

+0

opps ... У меня было = = вместо => в назначении фрагмента. Обновленный код. – Orangepill

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