首页 > 解决方案 > 基于变量结合字符串搜索分解后的字符串

问题描述

在我的数据库中,我有一个名为“Cart”的字符串。

$cart = "1+10,2+10,3+10,5+10,6+10"
$openCart = explode(",", $cart);

在 $openCart 中,我想在向该数组添加新信息之前搜索数字和加号。我试过array_searchin_array但都没有让我搜索像“3+”这样的值。array_search 只允许我搜索完整的字符串,例如“3+10”,而当我在加号上结束搜索字符串时,in_array 不喜欢它。

进一步的上下文: 最后,此函数的理想代码将在以下某处:

$pID = 3;
$pOrder = 4;
$openCart = explode(',', $cart);

//Search where $pID . "+" matches a value inside $openCart
$specProd = explode ('+' $openCart[/*Location that got matched*/]);
$specProd[1] = $specProd[1] + $pOrder;

$impProd = implode ('+', $specProd);
$specProd[] = impProd;
$newCart = implode (',', $specProd[]);

//upload the string of $newCart back to the database.

目前我只是坚持搜索数组,任何帮助将不胜感激。

标签: phparrayssorting

解决方案


It finds an element's key

<?php
$cart = "1+10,2+10,3+10,5+10,6+10";
$openCart = explode(",", $cart);
$needle = "3+";
$return = array_keys(array_filter($openCart, function($var) use ($needle){
    return strpos($var, $needle) !== false;
}));
if(!empty($return)){
   // do something
}

推荐阅读