我有两个数组需要比较和替换某些值。
第一个数组看起来类似于
Array
(
[catID1] => Cat1
[catID2] => Cat2
[catID3] => Cat3
...
)
其中所有键都是从数据库中提取的猫类别ID(数组值)。
第二个数组看起来像
Array
(
[itemID1] => Item_cat1
[itemID3] => Item_cat2
[itemID4] => Item_cat3
...
)
其中所有键都是商品ID,所有值都是商品类别。
我需要做的是通过第二个数组,如果第二个数组的值等于第一个数组的值,则用第一个数组中的数字键替换文本值。
类似
if( item_cat1 == cat1 )
{
item_cat1 == catID1
}
但我想创建一个新数组来保存值。数组应该看起来像
Array
(
[itemID1] => catID2
[itemID3] => catID4
[itemID4] => catID1
...
)
我在两个数组的foreach循环外部和内部尝试了几种不同的array_intersect()和array_merge()变体,但无济于事。有人有建议吗?我是否想过这个?
答案 0 :(得分:3)
使用array_search()
功能,下面的$items_by_catID
会为您提供一系列项目(itemID => categoryID)。
<?php
$categories = array
(
1 => "Category 1",
2 => "Category 2",
3 => "Category 3"
);
$items = array
(
1 => "Category 1",
3 => "Category 2",
4 => "Category 3"
);
$items_by_catID = array();
foreach ($items as $key => $category)
$items_by_catID[$key] = array_search($category, $categories, true);
?>