匹配数组对象的值

时间:2014-07-05 17:31:55

标签: php arrays

我有一个带有项目ID的PHP页面。我使用类运行查询并返回与此项目ID关联的某些项的属性数据集。数据以以下对象格式返回:

Array
(

[0] => stdClass Object
    (
        [id] => 1
        [projectID] => 469
        [itemID] => item_1
        [weight] => 20
        [length] => medium
    )

[1] => stdClass Object
    (
        [id] => 2
        [projectID] => 469
        [itemID] => item_2
        [weight] => 50
        [length] => medium
    )

[2] => stdClass Object
    (
        [id] => 3
        [projectID] => 469
        [itemID] => item_4
        [weight] => 75
        [length] => long
    )

) 

所以,现在我需要将这些属性添加到页面元素中。每个页面元素都有唯一的ID,它与返回的数据中的itemID相匹配,但我很难弄清楚如何匹配这两个。

<div id="item_2">'.( $myarray[1]['itemID'] == 'item_2' ?  
    $myarray[1]['weight'] : '0' ).' lb</div>

<div id="item_2">'.( $myarray[1]['itemID'] == 'item_2' ?  
    $myarray[1]['length'] : '0' ).' ft</div>


<div id="item_3">'.( $myarray[2]['itemID'] == 'item_3' ?  
    $myarray[2]['weight'] : '0' ).' lb</div>

<div id="item_3">'.( $myarray[2]['itemID'] == 'item_3' ?  
    $myarray[2]['length'] : '0' ).' ft</div>

1 个答案:

答案 0 :(得分:1)

假设item_id个键是唯一的,此代码会创建从原始数组中item_id索引的数组。

$newArr = array();
//create reindexed array based on data from original array ($orgArr)
array_walk($orgArr, function($v) use (& $newArr) { $newArr[$v->item_id] = $v; } );

然后您可以通过以下方式访问各个属性。

echo $newArr['item_1']->weight;
echo $newArr['item_2']->length;
相关问题