Home > Backend Development > PHP Tutorial > PHP 关于比较两个数组的问题值判断输出的问题

PHP 关于比较两个数组的问题值判断输出的问题

WBOY
Release: 2016-06-23 13:36:05
Original
967 people have browsed it

从两个表中取出两组数据,分别存入 $malls 和 $mall_tems

现在需要遍历比较两个数组,如果记录的 color_id 和 size_id 相同,就取出 $mall 的 price 值存入 $malls_tem 的 price 字段中

现在使用以下 foreach 循环,但是不成功,麻烦各位帮忙看看哪里不对。

foreach($mall_tems as $mall_tem){    // 使用的 Laravel,$current_mall 就代表获取当前循环的数据吧。    $current_mall = find($mall_tem->id);     foreach($malls as $mall)    {        if($mall_tem->color_id == $mall->color_id && $mall_tem->size_id == $mall->size_id)         {            $current_mall->price = $mall->price;        }else{            $current_mall->price = '129.00';        }    }}
Copy after login

现在的问题是 $malls 不能正常遍历,$mall_tems price数据可以写入,但是不正确。

谢谢。


回复讨论(解决方案)

除了 $current_mall 含义不明外,并无什么问题

除了 $current_mall 含义不明外,并无什么问题



获取当前循环的商品记录,方便存入 if 判断输出的 price 到这条记录中。后边还有个 $current_mall->save();省略了,

单独分段打印测试时也正常。循环写入时就乱了,有多个符合条件的记录,但是,只有第一条可以正常的写入 if 判断出的价格,其它的定入的都是 else 价格。

你的 $current_mall 是单个对象,并且总是在内层循环里赋值
由于你省略代码时把关键点省略了:$current_mall->save() 在哪里执行的
所以不能明确的说什么

按一般的做法,既然不匹配时 也是要赋值的,就可理解为 $current_mall 是有初值的

    $current_mall->price = '129.00';    foreach($malls as $mall)    {        if($mall_tem->color_id == $mall->color_id && $mall_tem->size_id == $mall->size_id)         {            $current_mall->price = $mall->price;            break; //匹配到就结束        }    }    $current_mall->save();
Copy after login
Copy after login

你的 $current_mall 是单个对象,并且总是在内层循环里赋值
由于你省略代码时把关键点省略了:$current_mall->save() 在哪里执行的
所以不能明确的说什么

按一般的做法,既然不匹配时 也是要赋值的,就可理解为 $current_mall 是有初值的

    $current_mall->price = '129.00';    foreach($malls as $mall)    {        if($mall_tem->color_id == $mall->color_id && $mall_tem->size_id == $mall->size_id)         {            $current_mall->price = $mall->price;            break; //匹配到就结束        }    }    $current_mall->save();
Copy after login
Copy after login




加上break;可以了,原来把数据又覆盖了!
多谢大侠救命之恩。
再次感谢!
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template