簡體   English   中英

如何將此字符串類型變量轉換為數組類型?

[英]How can i convert this string type variable in array type?

我如何在數組中轉換這個字符串並通過變量傳遞它?

'NumDoc'=> ['417', '145'], 'dateDoc'=> ['2022-08-12', '2022-08-13'], 'ValueDoc'=> ['100.00', '150.00']

當我嘗試這個時,它工作正常:

array('NumDoc'=> ['417', '145'], 'dateDoc'=> ['2022-08-12', '2022-08-13'], 'ValueDoc'=> ['100.00', '150.00'])

但我需要通過如下變量傳遞它並且它不起作用:

$string ="'NumDoc'=> ['417', '145'], 'dateDoc'=> ['2022-08-12', '2022-08-13'], 'ValueDoc'=> ['100.00', '150.00']";

array($string);
$string = "'NumDoc'=> ['417', '145'], 'dateDoc'=> ['2022-08-12', '2022-08-13'], 'ValueDoc'=> ['100.00', '150.00']";

function convertToArray(string $string): array
{
  $parts = explode('],', $string);

  foreach($parts as $part) {
    $key = trim(str_replace('\'', '', substr($part, 0, strpos($part, '=>'))));
    $value = trim(substr($part, strpos($part, '=> [') + strlen('=> [')));
  
    $new[str_replace('\'', '', $key)] = explode(',', str_replace(['\'', ' ', ']'], '', $value));
  }

  return $new ?? [];
}

var_dump(convertToArray($string));

Output:

array (size=3)
  'NumDoc' => 
    array (size=2)
      0 => string '417' (length=3)
      1 => string '145' (length=3)
  'dateDoc' => 
    array (size=2)
      0 => string '2022-08-12' (length=10)
      1 => string '2022-08-13' (length=10)
  'ValueDoc' => 
    array (size=2)
      0 => string '100.00' (length=6)
      1 => string '150.00' (length=7)

暫無
暫無

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

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