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 回答