[英]How to make new array as a group by array using common key-value pair of the input array in PHP
[英]How to compare multidimensional array with a common key pair using php?
阵列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
)
)
可能不是最有效的方法,但可以尝试一下
<?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);
?>
此代码更好地说明了您的逻辑
<?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++;
}
?>
这是关联数组的简单示例。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.