开发者

Comparing arrays and replacing values from one array to another

I have two arrays that I need to compare and replace certain values.

The first array looks similar to

Array
(
    [catID1] => Cat1
    [catID2] => Cat2
    [catID3] => Cat3
    ...
)

Where 开发者_如何转开发all the keys are the category ids of the cats (array values) pulled from a database.

The second array looks like

Array
    (
        [itemID1] => Item_cat1
        [itemID3] => Item_cat2
        [itemID4] => Item_cat3
        ...
    )

Where all keys are the item ids and all values are item categories.

What I need to do is go through the second array and replace the textual values with numeric keys from the first array if the value of the second array value is equal to the value of the first array.

something like

if( item_cat1 == cat1 )
{
    item_cat1 == catID1
}

but i would like to create a new array to hold the values. the array should look like

Array
(
    [itemID1] => catID2
    [itemID3] => catID4
    [itemID4] => catID1
    ...
)

I've tried several different variations of array_intersect() and array_merge() outside and inside of foreach loops on both arrays to no avail. Anyone have a suggestion? Am I overthinking this?


Using array_search() function, $items_by_catID below will give you an array of items (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);

?>
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜