[英]Accessing a certain element in an array in php
我有一系列产品。 如果不存在,我想再增加一个产品。 并将产品放入阵列中,如果阵列中已经有商品,则将其计数增加1。 我有以下代码。 它似乎不起作用。 顺便说一句,我是php新手,如果这是一个简单的问题,对不起。
if(!in_array($product, $sc->products)){
array_push($sc->products,$product);
}else{
$key = array_search($product, $sc->products);
$sc->products[$key]->productCounter++;
}
我的购物车课程
class shoppingChart extends Model
{
public $products;
function __construct() {
$this->products = Array();
}
public function ItemCount(){
return count($this->products);
}
}
和我的产品类
class Product extends Model
{
public $productCounter=0;
public function image(){
return $this->hasOne('App\Image');
}
}
我认为问题是因为您基于此处的对象进行搜索:
array_search($product, $sc->products);
in_array($product, $sc->products);
考虑提供每个产品和id
或某种unique identifier
以用作比较。
您可以使用以下函数来添加产品数量或根据其ID返回产品:
function findProductById($id){
// LOOP LIST OF PRODUCTS
foreach ( $products as $product ) {
// LOOK FOR MATCHING ID
if ( $id == $product->id ) {
// RETURN FOUND PRODUCT
return $product;
}
}
// RETURN FALSE (FAILED TO FIND PRODUCT)
return false;
}
function addToQuantityOfProduct($id){
// GET PRODUCT FROM ID
$foundProduct = findProductById($id);
// CHECK IF PRODUCT FOUND
if($foundProduct !== false){
// ADD TO PRODUCT COUNTER
$foundProduct->productCounter++;
// RETURN TRUE (SUCCESSFULLY UPDATED QUANTITY)
return true;
}else{
// RETURN FALSE (FAILED TO FIND PRODUCT)
return false;
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.