php - 基于变量结合字符串搜索分解后的字符串
问题描述
在我的数据库中,我有一个名为“Cart”的字符串。
$cart = "1+10,2+10,3+10,5+10,6+10"
$openCart = explode(",", $cart);
在 $openCart 中,我想在向该数组添加新信息之前搜索数字和加号。我试过array_search和in_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.
目前我只是坚持搜索数组,任何帮助将不胜感激。
解决方案
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
}
推荐阅读
- java - 如何从另一个 Maven 模块启动 Spring Boot 应用程序?
- java - Spring Cloud Gateway:不路由请求,最终遇到413请求实体太大
- java - Java Spring Boot 登录时出现多页重定向问题
- javascript - 为什么我不能在 Phaser 3 JS 中绘制矩形?
- javascript - 在 Windows 上设置 npm 时一直卡住
- apache-ranger - 外部用户无法通过 Ranger Admin UI 登录
- linux - 当服务器启动时,客户端应用程序是否可以通过 unix 域套接字知道服务器已启动?
- python - 在python中使用稀疏矩阵时如何避免负值?
- spring-security - SecurityContextHolder 返回错误的用户名
- api - 如何创建 vuejs unsplash 分页?