簡體   English   中英

從php中的字符串命名鍵值構建多維數組

[英]Build multidimensional array from string naming key values in php

所以我遇到了這個問題,我正在從具有這種結構的 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. 從字符串轉換為浮點數。
  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,
    },
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM