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 ループを変更するのは簡単だと確信していますが、方法がわかりません。

4

1 に答える 1

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"];
于 2013-07-29T14:32:55.410 に答える