我已经构建了一个小脚本来检查'158'是否在字符串中,如果是,则输出一些东西。
如果'158'不在字符串中,我会不断收到php通知消息:
消息:未定义的偏移量:1
$cart_check = '145+0,159+1,197+3,';
$cart_check = trim($cart_check, ',');
$cart_check = explode(',', $cart_check);
$check_entry_id_exists = '';
$key = '0';
if (array_search(158, $cart_check)) {
$check_entry_id_exists = 'yes';
$key = array_search(158, $cart_check);
}
$cart_check_row_id = explode("+", $cart_check[$key]);
$cart_check_row_id = $cart_check_row_id[1];
我无法弄清问题是什么,任何人都可以查看我的代码并看到:
谢谢
答案 0 :(得分:1)
回答你的(2),更好的方法是看regular expressions
你可以用2行代码
来做你正在尝试的事情preg_match('/,158\+(\d+)/', $cart_check, $output);
$cart_check_row_id = (empty($output[1])) ? 0 : $output[1];
答案 1 :(得分:1)
$cart_check_row_id =
preg_match('@(?:\\A|,)158\\+(\\d++)@', trim($cart_check)) ?
(int)$matches[1] :
false
;
答案 2 :(得分:0)
我运行了你的代码并找到了字符串“145 + 0,157 + 1,197 + 3”的答案。
$ cart_check = explode(',',$ cart_check); print_r($ cart_check)输出为,
阵 ( [0] => 145 + 0 [1] => 157 + 1 [2] => 197 + 3 )
$ cart_check_row_id = explode(“+”,$ cart_check [$ key]); 的print_r($ cart_check_row_id);输出为: 排列 ( [0] => 145 [1] => 0 )
$ cart_check_row_id = explode(“+”,$ cart_check [$ key]); 的print_r($ cart_check_row_id);输出为,
0