PHP - 如何在对象中搜索 ID 并显示其值


PHP - how to search ID and display its value in a object

嗨,我有一个这样的对象数组

$json = json_decode($featureJson);
//which returns below
Array
(
    [0] => stdClass Object
        (
            [productID] => 1
            [productName] => Toyo
            [assessments] => Array
                (
                    [0] => stdClass Object
                        (
                            [answer] => Yes
                        )
                    [1] => stdClass Object
                        (
                            [answer] => Yes
                        )
                    ...
                )
        )
    [1] => stdClass Object
        (
            [productID] => 2
            [productName] => Maze
            [assessments] => Array
                (
                    [0] => stdClass Object
                        (
                            [answer] => Yes
                        )
                    [1] => stdClass Object
                        (
                            [answer] => Yes
                        )
                    ...
                )
        )
)

我还有另一个数组需要匹配 $json(对象数组)的 ID 并返回其产品名称。

$string = "1,2|2,1";
$IdArray = explode('|', $string);
$foo = '';
foreach ($IdArray as $item) {
    $foo .= '{' . $item . '},';
}
echo $foo;

$foo返回{1,2},{2,1},我匹配$json所以将显示 - {Toyo,Maze},{Maze,Toyo},我该怎么做?我有一些使用 array_map() 的提示

但仍然不知道在对象中匹配。

如果先分隔名称的数组会更容易。

<?php 
    $featureJson = '[{"productID":1,"productName":"Toyo","assessments":[{"answerswer":"Yes"},{"answerswer":"No"}]},{"productID":2,"productName":"Maze","assessments":[{"answerswer":"Yes"},{"answerswer":"Yes"}]}]';
    $json = json_decode($featureJson);
    // Make an array of names
    $names = []; 
    foreach($json as $products){
            $names[$products->productID] = $products->productName;   
    };

    $string = "1,2|2,1";
    $IdArray = explode('|', $string); 
    $foo = []; 
    foreach ($IdArray as $ids) {
        $ids = explode(',',$ids);
        $fooItem = [];
        foreach($ids as $id){
            $fooItem[] = $names[$id];
        }
        $foo[]= '{' . implode(',',$fooItem) . '}'; } 
        echo implode(',',$foo);

结果:

{Toyo,Maze},{Maze,Toyo}

在这里查看