PHP如何按3个元素拆分数组?多文本框表单数据分组存储问题
解决PHP数组按3个元素分组的问题
嘿,这个需求其实用PHP自带的函数就能轻松搞定,不用自己写复杂的循环逻辑~我给你一步步拆解:
情况1:你已经有了implode后的字符串结果
如果现在手里只有$val = "(80,80,80,40,80,90,70,70,70)"这个字符串,那先把它转成一维数组,再分组:
// 第一步:清理字符串,去掉前后的括号 $clean_val = trim($val, '()'); // 第二步:把字符串拆成一维数组 $items_array = explode(',', $clean_val); // 第三步:用array_chunk按每组3个元素分组 $grouped_result = array_chunk($items_array, 3);
执行完后,$grouped_result就是你想要的结构:
Array ( [0] => Array ( [0] => 80 [1] => 80 [2] => 80 ) [1] => Array ( [0] => 40 [1] => 80 [2] => 90 ) [2] => Array ( [0] => 70 [1] => 70 [2] => 70 ) )
情况2:你还保留着原始的$textboxval数组
其实如果你还没做implode操作,直接用原始的$textboxval数组分组更省事,跳过字符串处理步骤:
// 直接对原始一维数组分组 $grouped_result = array_chunk($textboxval, 3);
存入数据库的建议
要把这个二维数组存进数据库,推荐转成JSON格式(大多数数据库都支持存储JSON,或者用TEXT字段也可以):
// 转成JSON字符串 $db_storable_value = json_encode($grouped_result); // 之后把$db_storable_value插入到你的数据库字段中即可
这样取出来的时候,用json_decode()就能还原成二维数组,非常方便。
内容的提问来源于stack exchange,提问作者Anonymouse
相关产品推荐
相关产品推荐

