1

アレイA

Array
(
    [0] => Array
        (
            [id] => 8
            [name] => test1
        )

    [1] => Array
        (
            [id] => 4
            [name] => test2
        )

    [2] => Array
        (
            [id] => 3
            [name] => test3
        )

)  

アレイB

Array
(
    [0] => Array
        (
            [id] => 3
            [place] => madurai
        )

    [1] => Array
        (
            [id] => 4
            [place] => Trichy
        )

    [2] => Array
        (
            [id] => 55
            [place] => chennai
        )

)

配列比較用のサンプルphpコードが必要です。配列では、キーペア(id)のコレクションが配列bのすべての配列キーペア(id)と比較されます。次の出力を取得したいと思います。

出力

Array
(
    [0] => Array
        (
            [id] => 8
            [name] => test1
            [place] => empty
        )


    [1] => Array
        (
            [id] => 4
            [name] => test2
            [place] => Trichy
        )

    [2] => Array
        (
            [id] => 3
            [name] => test3
            [place] => madurai
        )

)
4

2 に答える 2

1

最も効率的な方法ではないかもしれませんが、これを試してください

<?php

$arrayA=array();
$arrayA[0]["id"]=8;
$arrayA[0]["name"]="test1";
$arrayA[1]["id"]=4;
$arrayA[1]["name"]="test2";
$arrayA[2]["id"]=3;
$arrayA[2]["name"]="test3";

$arrayB=array();
$arrayB[0]["id"]=3;
$arrayB[0]["place"]="madurai";
$arrayB[1]["id"]=4;
$arrayB[1]["place"]="Trichy";
$arrayB[2]["id"]=55;
$arrayB[2]["place"]="chennai";

$places=Array();
$i=0;
foreach($arrayA as $itemA)
{
    $places[$i]["id"]=$itemA["id"];
    $places[$i]["name"]=$itemA["name"];
    $match=0;
    foreach($arrayB as $itemB)
    {
        if($itemA["id"]==$itemB["id"])
        {
            $places[$i]["place"]=$itemB["place"];
            $match=1;
        }
    }
    if($match==0)
    {
            $places[$i]["place"]="empty";
    }
    $i++;
}

print_r($places);


?>
于 2012-12-13T06:45:43.853 に答える
0

このコードは、ロジックをよりよく示しています

<?php
$country1 = array("id" => "1", "country" => "Australia",);

$country2 = array("id" => "3", "country" => "India",);
$country3 = array("id" => "2", "country" => "USA",);

$array1 = array($country1, $country2, $country3);

$capital1 = array("id" => "1", "capital" => "Sydney",);

$capital2 = array("id" => "3","capital" => "Delhi",);

$capital3 = array("id" => "4","capital" => "Berne",);

$array2=array($capital1, $capital2, $capital3);

$size1 = count($array1);
$size2 = count($array2);

$j = 0;

while($j < $size2)
{
    $i=0;
    while($i < $size1)
    {
        if(($array1[$i]['id']) == ($array2[$j]['id']))
        { 
             echo $array2[$i]['capital']."is capital of ".$array1[$j]['country']."<br/>";
        }
        $i++;
    }
    $j++;
}

?>

これは連想配列の配列の簡単な例です。

于 2012-12-13T07:33:53.450 に答える