键/值对作为 PHP 中的变量

问题描述 投票:0回答:3

我已将 csv 文件解析为关联数组,如下所示:

array(5) {
[0]=>  array(13) { 
            ["First Name"]=>string(7) "Name"
            ["Last Name"]=>string(14) "Last name"
            ["Login"]=>string(22) "name.lastname"
            ["Email"]=>string(27) "email"
…

我现在想将每个键的值写入带有键名称的变量中,例如:

$FirstName = "Name";
$LastName = "Last name";

由于我对编程和 php 比较陌生,所以我正在努力解决这个问题,我希望你能给我一个提示😊

编辑:这就是我创建数组的方式:

function csv_to_array($filename='', $delimiter=';')
{
    if(!file_exists($filename) || !is_readable($filename))
        return FALSE;

    $header = NULL;
    $data = array();
    if (($handle = fopen($filename, 'r')) !== FALSE)
    {
        while (($row = fgetcsv($handle, 1000, $delimiter)) !== FALSE)
        {
            if(!$header)
                $header = $row;
            else
                $data[] = array_combine($header, $row);
        }
        fclose($handle);
    }
    return $data;
}

$a_csv = csv_to_array($file, ';');
php associative-array key-value-store
3个回答
0
投票

如果你的数组是这样的

array(5) {
[0]=>  array(13) { 
            ["foo"]=>string(7) "fooValue"
            ["bar"]=>string(7) "barValue"
            ,,,

要动态创建变量,首先应该创建一个循环

    foreach ($first_arrays as $first_array)
    {
        foreach ($first_array as $key => $value) {
            $name = str_replace(" ","",$key);  //replace spaces
            ${$name} = $value;   //create PHP variable with your key
        }
    }

echo $foo; // will be fooValue
// here you have all variables that named by your array keys

0
投票

最后的解决方案是使用 foreach 遍历数组,然后调用键并分配它们:

foreach ($csv as $value){

    $FirstName = $value["First"];
    $LastName = $value["Last"];
...
}

我显然让事情变得更加困难。不管怎样,谢谢你的意见:)


0
投票

我很惊讶在这个问题开放的三年里没有人提到过摘录。 它完全符合OP的要求:

<?php

$var_array = array(
    "color" => "blue",
    "size"  => "medium",
    "shape" => "sphere"
);

extract($var_array);

echo "$color, $size, $shape\n";

?>

上面的例子将输出:

blue, large, sphere
© www.soinside.com 2019 - 2024. All rights reserved.