PHP 在 For 循环中创建关联数组

Posted

技术标签:

【中文标题】PHP 在 For 循环中创建关联数组【英文标题】:PHP Creating Association Arrays inside a For Loop 【发布时间】:2012-06-12 19:38:36 【问题描述】:
<?php
    $facet_fields = array (
    "dx-tx295" => array (
    "T",1348,),
    "dx-z1" => array (
    "F",1,
    "G",2,
    "E",3,
    "D",4,
    "C",5,
    "H",6,
    "B",7,
    "I",8,
    "J",9,
    "K",10,
    "A",11,
    "L",12,
    "M",13,)
    )
    $catalogue = array();
    $value = array();
    for ($x=1;$x<count($facet_fields);$x++)
    
         for($y=0;$y<count($facet_fields[$x]);$y+2)
         
            $current = $facet_fields[$x];
            $spot = ($current[$y] => $current[$y+1]);
            array_push($value, $spot);
         
    
    for($i=0;$i<count($facet_fields);$i++)
    
        $spot2 = ($facet_fields[$i]=>$value);
        array_push($catalogue, $spot2);
       
    print $catalogue
    print $value    
?>

我正在尝试将第一个数组中的每个数字分配给其关联的字母,然后将关联添加到新数组值中的某个位置。然后我试图将值数组关联到 facet_field 数组并将它们添加到目录中。分配的关联有问题,例如 $spot 行。

可以这样做吗?或者我不能在关联中包含这么多变量吗?如何在这样的数组中创建关联数组?

谢谢。

【问题讨论】:

php.net/manual/en/language.types.array.php 你的数组声明有问题。 除了提供的代码和所需输出的示例之外,最好添加。 @SomeKittens:虽然我确实看到 OP 的数组声明可能不如它们可能的那么好(假设关联数组比数字索引数组更适合需求)我没有看到任何问题他们被宣布的方式。请赐教。 虽然它们在语法上是正确的,但看起来 Tom 试图做的是创建一个关联数组(它可能是数字)。目前他的数组包含字符串和整数对象。 @sberry 所需的输出将给出:dx-tx295 T 1348 dx-z1 F 1 G 2 E 3 ...等等这样每个值数组都关联到其在目录中的位置下,并且数组中的每个字母值后面都有一个关联的数字值。谢谢大家。 【参考方案1】:

    可以这样做吗?

    是的,可以转换数组。

    或者我不能在关联中包含这么多变量吗?

    不,这不是问题。 $facet_files 数组很小且可处理。 只有当数组非常非常大时才会出现内存问题。

    如何在这样的数组中创建关联数组?

    通过遍历 $facet_fields 数组,获取其键和值并插入 将它们放入具有所需结构的新数组中。我认为您通过使用 for 循环并使用迭代器变量索引 $values 数组来使这有点复杂。当您将新值插入数组时,它们会自动按数字索引。 换句话说:停止做$facet_fields[$x]

    您可能会提供$catalog = array( key =&gt; value );,因为不清楚目标数组必须具有哪种结构。

【讨论】:

以上是关于PHP 在 For 循环中创建关联数组的主要内容,如果未能解决你的问题,请参考以下文章

请问php中如何用for循环遍历出关联数组,不要用foreach,用for循环哦

在 PHP 中创建关联数组的数组

1211php面向对象

PHP中数组的遍历

PHP中数组遍历的几种方法

PHP二维关联数组的遍历方式