如何在PHP中从字符串生成关联数组?
假设现在我有一个字符串:如何在PHP中从字符串生成关联数组?,php,arrays,foreach,associative-array,Php,Arrays,Foreach,Associative Array,假设现在我有一个字符串: $detail = "1=>Apple, 2=>Cheesecake, 3=>Banana"; 如何将字符串$detail转换或解析为关联数组,并变成这样: $detail_arr['1'] = "Apple"; $detail_arr['2'] = "Cheesecake"; $detail_arr['3'] = "Banana"; 或 如下面的代码所示: $detail_arr = array("1"=>"Apple", "2"=>
$detail = "1=>Apple, 2=>Cheesecake, 3=>Banana";
如何将字符串$detail
转换或解析为关联数组,并变成这样:
$detail_arr['1'] = "Apple";
$detail_arr['2'] = "Cheesecake";
$detail_arr['3'] = "Banana";
或
如下面的代码所示:
$detail_arr = array("1"=>"Apple", "2"=>"Cheesecake", "3"=>"Banana");
foreach($detail_arr as $x=> $x_name)
{
echo "Price=" . $x . ", Name=" . $x_name;
}
并将显示:
Price = 1, Name = Apple, ...
使用explode()
$arr = [];
foreach (explode(',', $detail) as $item){
$parts = explode('=>', $item);
$arr[trim($parts[0])] = $parts[1];
}
检查结果
您还可以使用preg\u match\u all()
和array\u combine()
来完成这项工作
preg_match_all("/(\d+)=>([^,]+)/", $detail, $matches);
$arr = array_combine($matches[1], $matches[2]);
这就是答案!谢谢你的帮助。如果关键是价格,那么你的阵列中只能有一个相同价格的物品。