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

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

WBOY
Freigeben: 2016-06-23 13:36:05
Original
968 Leute haben es durchsucht

从两个表中取出两组数据,分别存入 $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';        }    }}
Nach dem Login kopieren

现在的问题是 $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();
Nach dem Login kopieren
Nach dem Login kopieren

你的 $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();
Nach dem Login kopieren
Nach dem Login kopieren




加上break;可以了,原来把数据又覆盖了!
多谢大侠救命之恩。
再次感谢!
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage