作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
重复了几乎类似的问题。
我正在针对不同问题从数据库更新和获取字符串。
假设从数据库获取值后,我的变量 $str
之一看起来像下面之一
$str = "1:1,2:1,3:2,5:6";
或
$str = "1|1,2|1,3|2,5|6";
或
$str = "1=1,2=1,3=2,5=6";
如何将任何或几乎不同的字符串转换为 PHP 中的关联数组
提前致谢。我尝试寻找答案,但没有找到类似的内容。
我试图将其设为关联数组的代码
$firstArr = explode(',', $str);
foreach (firstArr as $value) {
$secondArr = explode(':', $value);
}
最佳答案
试试这个:
$final_array = Array();
$str = "1|1,2|1,3|2,5|6";
$arr1 = explode(",", $str);
// this gives $arr1 as
// array(4) { [0]=> string(3) "1|1" [1]=> string(3) "2|1" [2]=> string(3) "3|2" [3]=> string(3) "5|6" }
// iterate through $arr1 and further split it on | using explode function
foreach ($arr1 as $k=>$v){
$arr2 = explode("|", $v);
// $arr2 would be like
// array(2) { [0]=> string(1) "1" [1]=> string(1) "1" } etc.
$final_array[$arr2[0]] = $arr2[1];
}
print_r($final_array);
// gives Array ( [1] => 1 [2] => 1 [3] => 2 [5] => 6 )
但正如 Sylvain 提到的,您可能还想研究一下数据库规范化部分。
关于php - 如何在 PHP 中将 CSV 字符串转换为关联数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18133184/
我是一名优秀的程序员,十分优秀!