2个数组使用PHP将数据匹配到1个数组中
我有两个数组,第一个数组有我的项目的ItemID,第二个数组有关于我的项目的描述。我想将数据匹配到一个数组中 它看起来像:2个数组使用PHP将数据匹配到1个数组中,php,arrays,json,Php,Arrays,Json,我有两个数组,第一个数组有我的项目的ItemID,第二个数组有关于我的项目的描述。我想将数据匹配到一个数组中 它看起来像: [rgInventory] => Array ( [1234567890] => Array ( [id] => 1234567890 [classid] => 123456789 [instanceid]
[rgInventory] => Array
(
[1234567890] => Array
(
[id] => 1234567890
[classid] => 123456789
[instanceid] => 987654321
[amount] => 1
[pos] => 1
)
)
[rgDescriptions] => Array
(
[192837465_918273645] => Array
(
[appid] => 730
[name] => Something
)
)
数组中的项与ID的值不同,但它们的顺序相同,因此:
rgInventory中第一项的说明位于rgDescriptions内的第一个数组中
我应该怎么做才能将rgInventory
中的id与rgDescriptions
中的name匹配到同一数组中,例如$backpack=array()代码>
问候您。您可以使用函数获取两个数组的每个元素,然后将其与合并,并将此新项目保存到备份数组中
试试这样的
<?php
$rgInventory = ['firstInv' => ['invId' => 1], 'secondInv' => ['invId' => 2]];
$rgDescriptions = ['firstDesc' => ['descId' => 1], 'secondDesc' => ['descId' => 2]];
if (count($rgInventory) && count($rgInventory) == count($rgDescriptions)) {
$backpack = [];
while($inventory = each($rgInventory)) {
$description = each($rgDescriptions);
$item = array_merge($inventory['value'], $description['value']);
$backpack[] = $item;
}
var_dump($backpack);
}
您可以使用函数获取两个数组的每个元素,然后将其与合并,并将此新项保存到备份数组中
试试这样的
<?php
$rgInventory = ['firstInv' => ['invId' => 1], 'secondInv' => ['invId' => 2]];
$rgDescriptions = ['firstDesc' => ['descId' => 1], 'secondDesc' => ['descId' => 2]];
if (count($rgInventory) && count($rgInventory) == count($rgDescriptions)) {
$backpack = [];
while($inventory = each($rgInventory)) {
$description = each($rgDescriptions);
$item = array_merge($inventory['value'], $description['value']);
$backpack[] = $item;
}
var_dump($backpack);
}
试试这个:
<?php
$array1 = array('rgInventory' =>
array(
'1234567890' => array(
'id' => 1234567890,
'classid' => 123456789,
'instanceid' => 987654321,
'amount' => 1,
'pos' => 1
)
)
);
$array2 = array(
'rgDescriptions' => array(
'192837465_918273645' => array(
'appid' => 730, 'name' => 'Something')
)
);
将两个数组放在一个数组中$newarray
:
$newonearray = array_sum_recursive($array1, $array2);
echo '<pre>';
print_r($newonearray);
?>
希望这能有所帮助。试试这个:
<?php
$array1 = array('rgInventory' =>
array(
'1234567890' => array(
'id' => 1234567890,
'classid' => 123456789,
'instanceid' => 987654321,
'amount' => 1,
'pos' => 1
)
)
);
$array2 = array(
'rgDescriptions' => array(
'192837465_918273645' => array(
'appid' => 730, 'name' => 'Something')
)
);
将两个数组放在一个数组中$newarray
:
$newonearray = array_sum_recursive($array1, $array2);
echo '<pre>';
print_r($newonearray);
?>
希望这会有所帮助。您可以使用array\u merge()
@Drudge,但是array\u merge()
与rgDescription
中的第一项不匹配。如何将rgInventory
中的第一项与rgDescription
中的第一项匹配??没有什么共同点。我不知道,这就是我为什么在这里问的原因。也许我可以使用for()
并按顺序添加rgInventory
中的值,然后按相同顺序添加rgDescriptions
中的值?但是怎么做呢?你能给我们看看你试过的代码吗?你可以使用array\u merge()
@Drudge但是array\u merge())
无法将rgInventory
中的第一项与rgDescription
中的第一项匹配。如何将rgInventory
中的第一项与rgDescription
中的第一项匹配??没有什么共同点。我不知道,这就是我为什么在这里问的原因。也许我可以使用for()
并按顺序添加rgInventory
中的值,然后按相同顺序添加rgDescriptions
中的值?但如何做到这一点?你能告诉我们你的代码,你已经尝试??