(PHP)2D数组第一个元素为;名称“;对于索引

(PHP)2D数组第一个元素为;名称“;对于索引,php,arrays,csv,header,multidimensional-array,Php,Arrays,Csv,Header,Multidimensional Array,简单地说,我需要获取数组的第一列并将其转换为命名数组,在单个2d数组中多次转换 $arr[0][0]=“名称” $arr[1][0]=“版本” …等,允许我通过以下方式访问它们: $arr[“名称”][1]=“鲍勃” $arr[“版本”][1]=“1.00” 如何为索引分配变量名?如果这有道理的话。我不知道这类事情的合适术语。。。或者至少不知道如何使用它们 无论如何,实际数组如下所示: Name,Version,Compact,OpenGFx Element1,1.0,0,0,1 Element

简单地说,我需要获取数组的第一列并将其转换为命名数组,在单个2d数组中多次转换

$arr[0][0]=“名称” $arr[1][0]=“版本” …等,允许我通过以下方式访问它们: $arr[“名称”][1]=“鲍勃” $arr[“版本”][1]=“1.00”

如何为索引分配变量名?如果这有道理的话。我不知道这类事情的合适术语。。。或者至少不知道如何使用它们

无论如何,实际数组如下所示:

Name,Version,Compact,OpenGFx
Element1,1.0,0,0,1
Element2,1.23,0,0,1
ElementN,1.0,0,0,1
$arr[] = array("name" => "nameValue"
                , "version" => 1
                , "compact" => 0 ) //...etc
$currentName = $arr[0]['name'];
$currentVersion = $arr[0]['version'] //...etc
我开始写标识符来做同样的事情($name=0,$version=1,等等),但是有165列!所以自动化会容易得多,而且我对学习新事物一如既往地感兴趣

好的,你要做的是:

$arr = array();
$arr['NAME'] = array();
$arr['VERSION'] = array(); //and so on

//to add to the array:

$arr['NAME'][] = 'john';
//or
$arr['NAME'][0] = 'john';
//etc etc
然后要打印所有名称(例如),您可以执行以下操作:

foreach($arr['NAME'] as $name){
   echo $name.'<br/>';
}
foreach($arr['NAME']作为$NAME){
回显$name。“
”; }
我想你应该这样做:

Name,Version,Compact,OpenGFx
Element1,1.0,0,0,1
Element2,1.23,0,0,1
ElementN,1.0,0,0,1
$arr[] = array("name" => "nameValue"
                , "version" => 1
                , "compact" => 0 ) //...etc
$currentName = $arr[0]['name'];
$currentVersion = $arr[0]['version'] //...etc
然后您可以像这样访问它:

Name,Version,Compact,OpenGFx
Element1,1.0,0,0,1
Element2,1.23,0,0,1
ElementN,1.0,0,0,1
$arr[] = array("name" => "nameValue"
                , "version" => 1
                , "compact" => 0 ) //...etc
$currentName = $arr[0]['name'];
$currentVersion = $arr[0]['version'] //...etc

如果我理解正确的话,你不会想把所有的标题都写出来吧?也许您可以执行类似于以下代码的操作:

我刚刚假设了输入数组的格式,您可能需要对其进行一些更改:

$input = array(
    array('name', 'version', 'compact'), // and so on
    array('element1', 1.0, 0),
    array('element2', 1.3, 1) // and so on
);

$headings = array_shift($input);

$output = array();
foreach ($input as $row) {
    $newrow = array();
    foreach ($headings as $index => $name) {
        $newrow[$name] = $row[$index];
    }
    $output[] = $newrow;
}

var_dump($output);
$array=array()


我明白了,但是如果数组已经存在,我可以给已经定义的数组命名吗?这就是我面临的困境。是的,你成功了!很好的例子,它应该适合我的脚本很容易。