0
我有一个带有项目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>
如果'itemId'键唯一然后做一个循环(或使用array_walk),将经过对象返回数组,将产生阵列由'itemId'索引。然后在索引'$ arr ['item_3']'你将有原始数组的数据,所以你可以例如echo'
我可以在页面上有一些项目,我认为这会影响我的加载时间,我是通过循环该数组来匹配每个项目的一组属性。我希望我可以简单地做$ myarray ['item_4'] ['weight']但我不能添加顶端节点ID,即$ myarray [2] ['item_4'] ['weight']。有没有办法打破这个巨大的对象? – santa
如果您遍历整个数组ONCE并从原始数组中创建另一个数组,您可以简单地执行'$ myarray ['item_4'] - > weight'。 – doc