php - 从php中命名键值的字符串构建多维数组

标签 php arrays excel multidimensional-array key-value

所以我遇到了这个问题,我正在从 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 ) );
  1. 从字符串转换为 float 。
  2. 将第一个数组 (['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/

相关文章:

php - 如何将字符串响应转换为 JSON 对象?

php - 使用 MySQL 和 PHP 存储图像位置

ruby - 如何巧妙地进行数组加法?

java - Java 是否支持关联数组?

excel - 从 Excel 与 VBA 调用时,VBA UDF 给出不同的答案

php - jQuery 提交 ajax 表单,带有 2 个提交按钮

php - 如何在 php 中获取重复的多维数组

Excel 排序顺序 - 特殊字符不排在前面

excel - 从 Excel 发送一封带有后续提醒的电子邮件

php - codeigniter 查询中 where 子句中的未知列