所以我遇到了这个问题,我正在从 Excel 中提取具有以下结构的字符串:
89.356 87.54, 45.34 98.254, 45.2413 45.2146, 98.23 35.647
我想构建一个具有以下结构的数组:
Array
(
[0] => Array
(
['first'] => 89.356
['second'] => 87.54
)
[1] => Array
(
['first'] => 45.34
['second'] => 98.254
)
[2] => Array
(
['first'] => 45.2413
['second'] => 45.2146
)
)
我从 Excel 中提取这些值并创建数组,如下所示:
$polygons = $sheet->getCell("B".$row)->getValue();
$ret = array_map (
function ($) {return explode (' ', $);},
explode (',', $polygons)
);
但我不知道如何将键值“first”和“second”分配给数组。
最佳答案
首先,只是指出您的代码将产生错误,因为您无法创建没有名称 ex 的变量。在您的代码中,您只有 $ 作为变量。
具体操作方法如下。
$ret = array_map( function( $pol ) {
$a = array_map( 'floatval', explode( ' ', $pol, 2 ) ); // 1
return array_combine( ['first', 'second'], $a ); // 2
}, explode( ',', $polygons ) );
- 从字符串转换为 float 。
- 将第一个数组 (['first', 'second']) 指定为第二个数组的键
输出:var_dump( $ret );
array(3) {
[0] => array(2) {
["first"] => float(89.356),
["second"] => float(89.356),
},
[1] => array(2) {
["first"] => float(45.34),
["second"] => float(98.254),
},
[2] => array(2) {
["first"] => float(45.2413),
["second"] => float(45.2146,
},
}
关于php - 从php中命名键值的字符串构建多维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64583944/