更新数组的值

时间:2013-09-20 01:28:31

标签: php arrays

如果iteminfo等于某个主题,如何更新itemprices中的值?

User(
[name] => xxxx
[phone] => xxxxx
[email]xxxxx
[itemprices] => Array ( [0] => 1.00 [1] => 1.00 )
[iteminfo] => Array ( [0] => Chemistry [1] => Biology ) 
)

1 个答案:

答案 0 :(得分:1)

一种可能的方法:

$subject = 'Chemistry';
$index = array_search($subject, $user->iteminfo);
if (false !== $index) {
  $user->itemprices[$index] = $newvalue;
}

说明:首先使用array_searchiteminfo数组中查找给定主题的索引。如果确实存在,则使用该索引更新itemprices中的相应值。

但实际上,我宁愿将数据重新排列成关联数组,其中所有键分别对应于主题和所有值 - 分别与它们的价格相对应。使用array_combine很容易做到:

$user->itemdata = array_combine($user->iteminfo, $user->itemprices);

然后您不必再使用array_search,直接通过主题键访问价格信息:

$user->itemdata[$subject] = $newvalue;